Java.lang.NoClassDefFoundError: 添加Gson依赖和Facebook SDK依赖后

3

build.gradle

compile 'com.google.code.gson:gson:2.6.2'
compile 'com.facebook.android:facebook-android-sdk:4.12.1'

但是在添加后,它给了我以下的错误:

java.lang.NoClassDefFoundError:

我没有添加或删除任何代码,但仍然存在错误。

这是我的日志记录:

06-08 13:48:28.022 29087-29087/com.psl.ipune E/AndroidRuntime: FATAL EXCEPTION: main
                                                               java.lang.NoClassDefFoundError: com.psl.ipune.ui.fragments.NearByFragment$1
                                                                   at com.psl.ipune.ui.fragments.NearByFragment.<init>(NearByFragment.java:104)
                                                                   at com.psl.ipune.util.AppUtility.<clinit>(AppUtility.java:63)
                                                                   at com.psl.ipune.location.GetLocationService.onStart(GetLocationService.java:74)
                                                                   at android.app.IntentService.onStartCommand(IntentService.java:130)
                                                                   at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2833)
                                                                   at android.app.ActivityThread.access$2000(ActivityThread.java:159)
                                                                   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1419)
                                                                   at android.os.Handler.dispatchMessage(Handler.java:99)
                                                                   at android.os.Looper.loop(Looper.java:176)
                                                                   at android.app.ActivityThread.main(ActivityThread.java:5419)
                                                                   at java.lang.reflect.Method.invokeNative(Native Method)
                                                                   at java.lang.reflect.Method.invoke(Method.java:525)
                                                                   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
                                                                   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
                                                                   at dalvik.system.NativeStart.main(Native Method)

如果我只移除其中一个,那么它可以正常工作。

但是我想同时使用两个,如何解决这个问题。


在您的默认配置中添加multiDexEnabled = true。 - Burak Cakir
是的,它已经存在了。 - Gaurav
清理构建是否成功? - Neji
是的,干净的构建成功。 - Gaurav
1
删除 compile 'com.facebook.android:facebook-android-sdk:4.6.0' 后它可以工作了,我不知道问题出在哪里,该如何修复。 - Gaurav
2个回答

1
我尝试为您寻找解决方案,但是它对我有效。请尝试将mavenCentral()添加到repositories中:
repositories {
    mavenCentral()
}

然后尝试使用以下内容进行编译:

compile 'com.facebook.android:facebook-android-sdk:4.+'
compile 'com.google.code.gson:gson:2.7'

我知道版本不同,但这是Android Studio为我找到的。

不需要添加mavenCentral(),在添加这些依赖项后它可以工作,而且再次更改为以前的设置也可以正常工作,这实际上很奇怪,你有什么想法吗? - Gaurav
我不知道,但如果它能工作,谁在意呢?也许新的Android Studio即时运行没有显示您的更新的应用程序。祝好运。 - Ami Hollander

0

我认为你在Android Studio的终端窗格中遇到了依赖冲突,请执行./gradlew dependencies或者Windows上的gradlew dependencies,找到冲突的库,然后可以排除该依赖项。

例如:

compile(com.facebook.android:facebook-android-sdk:4.6.0){
    exclude group: 'com.google.code.gson', module: 'gson'
}

或者类似的东西。


我重新阅读了错误信息,发现是一个片段库的问题。所以,请尝试为我做如下操作:在compile(com.facebook.android:facebook-android-sdk:4.6.0)中添加以下代码: exclude group: 'com.android.support', module: 'support-v4'根据Maven仓库中的信息,Facebook库使用的是支持库v4版本20.0.x,但你可能正在使用较新的版本,因此需要进行排除。 - Danny Beaumont

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接