我正在构建一个Android应用程序,它使用google地图播放服务用于谷歌地图和Microsoft azure用于移动服务(云存储)。 当我只使用Microsoft azure库时,我不会遇到任何问题,但是当添加谷歌播放库时,它会给我以下错误。
错误
FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com.google.gson.GsonBuilder
at com.microsoft.windowsazure.mobileservices.MobileServiceClient.createMobileServiceGsonBuilder(MobileServiceClient.java:192)
at com.microsoft.windowsazure.mobileservices.MobileServiceClient.<init>(MobileServiceClient.java:179)
at com.microsoft.windowsazure.mobileservices.MobileServiceClient.<init>(MobileServiceClient.java:158)
at com.example.jino.navigationplacepicker.ReviewPage.onCreate(ReviewPage.java:27)
这是我的gradle
中的库依赖结构 dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.2.1'
compile 'com.android.support:design:23.2.1'
compile 'com.google.code.gson:gson:2.4'
compile files('libs/azuresdk-android-2.0.3/mobileservices/guava-17.0.jar')
compile files('libs/azuresdk-android-2.0.3/mobileservices/mobileservices-2.0.3.jar')
compile files('libs/azuresdk-android-2.0.3/mobileservices/mobileservices-2.0.3-javadoc.jar')
compile files('libs/azuresdk-android-2.0.3/mobileservices/mobileservices-2.0.3-sources.jar')
compile 'com.google.android.gms:play-services:8.4.0'
}
希望你能帮助我。提前谢谢。
答案 0 :(得分:1)
当您加入compile 'com.google.android.gms:play-services:8.4.0'
时,会包含所有播放服务包。如果您只需要播放服务中的地图,请改用compile 'com.google.android.gms:play-services-maps:8.4.0'
。
有关播放服务模块的列表,请参阅here。我目前正在测试所有模块,看看哪个可能是罪魁祸首。如果你很好奇,请继续关注更新。
我目前不确定导致此问题的原因。使用整个播放服务集合适用于我的大多数设备,但不适用于我的任何Android 4.4.4设备。
更新:问题更可能是由于使用的软件包数量而非特定软件包与Azure不兼容。可能与总方法计数超过64K(DEX64K错误)有关。
继续使用特定模块,你应该没问题。