我正在尝试清理和更新项目中的库。作为其中的一部分,我从使用经典库文件夹依赖关系转移到通过gradle,用于Google Play服务。编译调试时我开始收到dexDebug错误(参见Android Studio - UNEXPECTED TOP-LEVEL EXCEPTION:)。根据我的理解,如果你有某种双重依赖,这个错误就会出现。
以下是我的gradle文件的依赖项部分。如果我完全注释掉appcompat-v7,一切正常。播放服务是否已经依赖于appcompatv7并自动将其引入或进行了什么?
dependencies {
compile 'com.google.android.gms:play-services:7.0.0'
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.google.maps.android:android-maps-utils:0.3'
//compile files('libs/commons-codec-1.8-sources.jar')
compile files('libs/engine.io-client-0.2.3.jar')
compile files('libs/ffmpeg.jar')
compile files('libs/Java-WebSocket-1.3.0.jar')
compile files('libs/socket.io-client-0.1.3.jar')
//compile files('libs/javacpp.jar')
compile files('libs/javacv.jar')
compile files('libs/json-simple-1.1.1.jar')
compile files('libs/opencv.jar')
//compile files('libs/twitter4j-async-4.0.2.jar')
compile files('libs/twitter4j-core-4.0.2.jar')
//compile files('libs/twitter4j-media-support-4.0.2.jar')
//compile files('libs/twitter4j-stream-4.0.2.jar')
}
答案 0 :(得分:3)
事实证明这个问题与此问题完全相同:
After update of AS to 1.0, getting "method ID not in [0, 0xffff]: 65536" error in project
我通过添加修复它(仅此一项将解决原始问题):
defaultConfig {
...
multiDexEnabled true
}
并通过减少大量的Google Play服务,并仅使用它的子集(仅此一项也将解决原始问题):
dependencies {
//compile 'com.google.android.gms:play-services:7.0.0'
compile 'com.google.android.gms:play-services-maps:7.0.0'
compile 'com.google.android.gms:play-services-location:7.0.0'
compile 'com.google.android.gms:play-services-gcm:7.0.0'
compile 'com.google.android.gms:play-services-plus:7.0.0'
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.google.maps.android:android-maps-utils:0.3+'
compile files('libs/engine.io-client-0.2.3.jar')
compile files('libs/ffmpeg.jar')
compile files('libs/Java-WebSocket-1.3.0.jar')
compile files('libs/socket.io-client-0.1.3.jar')
compile files('libs/javacv.jar')
compile files('libs/json-simple-1.1.1.jar')
compile files('libs/opencv.jar')
compile files('libs/twitter4j-core-4.0.2.jar')
}