java - com.android.ide.common.internal.LoggedErrorException 与 Facebook SDK

标签 java android facebook

我的项目运行良好,如果我添加 Facebook SDK 会在尝试编译时生成 com.android.ide.common.internal.LoggedErrorException 错误。

我尝试了 Maven Repository,并下载了 SDK Facebook,但都产生了相同的错误。

这是 Gradle 依赖项:

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile project(':simple-crop-image-lib')
    compile project(path: ':backend', configuration: 'android-endpoints')
    compile project(':httpclient-4.3.6')
    compile project(':httpmime-4.3.6')
    compile project(':httpcore-4.3.3')
    compile 'com.android.support:support-v13:21.0.3'
    compile 'com.google.android.gms:play-services:6.5.87'
    compile 'com.koushikdutta.async:androidasync:1.3.8'
    compile 'com.koushikdutta.ion:ion:1.3.8'
    compile 'joda-time:joda-time:2.5'
    compile project(':facebook')
}

这是实现:

public class extends Activity implements Register GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener {
// Facebook
UiLifecycleHelper private uiHelper;
// Facebook
...

这是错误:

Error:Execution failed for task ':app:dexDebug'.

com.android.ide.common.internal.LoggedErrorException: Failed to run command: C:\AndroidSDK\sdk\build-tools\android-4.4W\dx.bat --dex --no-optimize --output C:\Carlos\RingProyect\app\build\intermediates\dex\debug C:\Carlos\RingProyect\app\build\intermediates\classes\debug C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\internal_impl-21.0.3-4959d6dabe32e10086d95451adf02b3105bb3b29.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\support-annotations-21.0.3-56620581d48b4e53a66e3c8171c6371387ca27a8.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\google-http-client-jackson2-1.19.0-4208b75ca9c39f13f0c833eca04c03cccea3f2e9.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\google-api-client-android-1.19.0-6de6f1752dfdd2f7269c5ebca750e463fe8698ae.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\google-http-client-android-1.19.0-d9ae92c3b3d0ecb599461daf2dbe3a955a59050c.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\classes-b173979dafb65381366219767cf55b3e9e853bfb.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\httpmime-4.3.6-3b37b68d78d793feb8401b62cba7fe2f3f74d83e.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\jsr305-1.3.9-5835e3ee0aa80174a87d682a1e9ffcf7a1101135.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\backend-android-endpoints-45d7cd94042d13a69dfe65cf4638db4471013ac2.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\bolts-android-1.1.4-c04175b72096a6e529ed3f71be91a0769e5aecc7.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\google-oauth-client-1.19.0-52a247687c1596598d7413aaf2a29a8947f5f9cd.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\classes-618f0879a780d0e2d8493552e69b3aa604718225.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\internal_impl-21.0.3-94cad900d13cd2a8d5402d289f28bf2747ccbb61.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\gson-2.3-00039b6a743aa0b577b54b85bab1bcfc5a7c7b5d.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\ion-1.3.8-c640a934021d1f39ad2302f380213f6675f4c278.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\google-api-client-1.19.0-ca416295d5a4743f0738ad9dda16a0e296002541.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\httpcore-4.3.3-7246717c88c5d5838e28cb71eab459038d9ba082.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\jackson-core-2.1.3-8ad8725d3275e0c9a6b240e2a5f42dd1c2fb1210.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\google-http-client-1.19.0-02d081b8be1f9b1dfa30f2ba2d5c5c1033e658f5.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\androidasync-1.3.8-99b85ea5cf8a58339ff45f563bce47553aff5c76.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\httpclient-4.3.6-b5358e8cf388d9b6d935e6ef384c38dee7488132.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\classes-aea9760e3da7b065e05c295f56b2354397f9bd28.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\classes-84c7f062264b457888f7dfb250e8626fc109a367.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\joda-time-2.5-33520e1d27f87b5291ecc6a8f93b7942b8aac0d1.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\guava-jdk5-13.0-2290d8749c87dfefb9fac2fcfe45a91d08c812cc.jar C:\Carlos\RingProyect\app\build\intermediates\pre-dexed\debug\classes-2d5075d9f95c61464dc534a8eefd9438d8a44d5a.jar Error Code: 2 Output: UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: method ID not in [0, 0xffff]: 65536 at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:501) at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:276) at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:490) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:167) at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287) at com.android.dx.command.dexer.Main.run(Main.java:230) at com.android.dx.command.dexer.Main.main(Main.java:199) at com.android.dx.command.Main.main(Main.java:103)

感谢您的帮助。

最佳答案

好吧,我找到了解决方案,问题是由这一行指定的:

TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: method ID not in [0, 0xffff]: 65536

当我添加 Facebook Libraries 时,我得到了超过 65536 个方法,这是限制,那么我们必须优化代码:

首先,如果您使用的是 Google Play 服务:

改变:

compile 'com.google.android.gms:play-services:6.5.87'

仅针对您想要使用的服务,例如在我的情况下:

compile 'com.google.android.gms:play-services-plus:6.5.87'
compile 'com.google.android.gms:play-services-location:6.5.87'
compile 'com.google.android.gms:play-services-maps:6.5.87'
compile 'com.google.android.gms:play-services-panorama:6.5.87'

请在此处查看列表:http://developer.android.com/google/play-services/setup.html

现在,将 SDK 版本更改为 21,并在 Gradle 上添加 multiDexEnable:

...
compileSdkVersion 21
buildToolsVersion "21.1.2"
...
defaultConfig {
    targetSdkVersion 21        
    multiDexEnabled true
...
}

并添加:

compile 'com.android.support:multidex:1.0.0'

最后在AndroidManifest.xml中添加:

<application
    ...
    android:name="android.support.multidex.MultiDexApplication">
    ...
</application>

关于此的文档:http://developer.android.com/tools/building/multidex.html

关于java - com.android.ide.common.internal.LoggedErrorException 与 Facebook SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28269797/

相关文章:

java - 我的 Maven 项目可以从依赖项内的 pom 导入依赖项吗?

android - 在 firebase 分析调试 View 中看不到事件

java - ImageView onTouch 不上下移动,只绕圈移动

ios - React原生fbsdk登录IOS白屏

java - 如何根据Key从PairRDD中获取新的RDD

java - 弗林克 : applying multiple aggregations on a windowed stream

java - 在同一行打印列名

java - LinearLayout 中的居中对象 (Android)

javascript - fb 登录弹出 block

facebook - 如何让 facebook like 按钮显示针对移动设备优化的 Facebook 登录页面?