包含Android项目的第三方库发生错误

Posted

技术标签:

【中文标题】包含Android项目的第三方库发生错误【英文标题】:Error occurs in third party library included Android project 【发布时间】:2015-12-02 15:53:57 【问题描述】:

我的 android 应用程序中包含的每个第三方库项目中都有 NoClassDefFoundError

当我使用我的应用程序配置 Google Map V2 时,出现以下错误;

09-07 01:35:09.429: E/AndroidRuntime(2061): java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/android/gms/maps/model/LatLng;
09-07 01:35:09.429: E/AndroidRuntime(2061):     at com.taxsmart.collegeapp.support.GoogleMapActivity.<clinit>(GoogleMapActivity.java:34)
09-07 01:35:09.429: E/AndroidRuntime(2061):     at java.lang.reflect.Constructor.newInstance(Native Method)
09-07 01:35:09.429: E/AndroidRuntime(2061):     at java.lang.Class.newInstance(Class.java:1606)
09-07 01:35:09.429: E/AndroidRuntime(2061):     at android.app.Instrumentation.newActivity(Instrumentation.java:1066)
09-07 01:35:09.429: E/AndroidRuntime(2061):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2226)
09-07 01:35:09.429: E/AndroidRuntime(2061):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
09-07 01:35:09.429: E/AndroidRuntime(2061):     at android.app.ActivityThread.access$800(ActivityThread.java:151)
09-07 01:35:09.429: E/AndroidRuntime(2061):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
09-07 01:35:09.429: E/AndroidRuntime(2061):     at android.os.Handler.dispatchMessage(Handler.java:102)
09-07 01:35:09.429: E/AndroidRuntime(2061):     at android.os.Looper.loop(Looper.java:135)
09-07 01:35:09.429: E/AndroidRuntime(2061):     at android.app.ActivityThread.main(ActivityThread.java:5254)
09-07 01:35:09.429: E/AndroidRuntime(2061):     at java.lang.reflect.Method.invoke(Native Method)
09-07 01:35:09.429: E/AndroidRuntime(2061):     at java.lang.reflect.Method.invoke(Method.java:372)
09-07 01:35:09.429: E/AndroidRuntime(2061):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
09-07 01:35:09.429: E/AndroidRuntime(2061):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
09-07 01:35:09.429: E/AndroidRuntime(2061): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.maps.model.LatLng" on path: DexPathList[[zip file "/data/app/com.taxsmart.collegeapp-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
09-07 01:35:09.429: E/AndroidRuntime(2061):     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
09-07 01:35:09.429: E/AndroidRuntime(2061):     at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
09-07 01:35:09.429: E/AndroidRuntime(2061):     at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
09-07 01:35:09.429: E/AndroidRuntime(2061):     ... 15 more
09-07 01:35:09.429: E/AndroidRuntime(2061):     Suppressed: java.lang.ClassNotFoundException: com.google.android.gms.maps.model.LatLng
09-07 01:35:09.429: E/AndroidRuntime(2061):         at java.lang.Class.classForName(Native Method)
09-07 01:35:09.429: E/AndroidRuntime(2061):         at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
09-07 01:35:09.429: E/AndroidRuntime(2061):         at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
09-07 01:35:09.429: E/AndroidRuntime(2061):         at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
09-07 01:35:09.429: E/AndroidRuntime(2061):         ... 16 more
09-07 01:35:09.429: E/AndroidRuntime(2061):     Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

在其他应用程序中,其他类包含的库项目也出现同样的错误。

我使用以下软件配置:

**Windows 10  64-bit
Eclipse Luna Service Release 2 (4.4.2) - 64-bit
Java SE – jdk-7u79-windows-x64
        jre-7u79-windows-x64
Android:
    Android SDK Tools – 24.3.4
    Android SDK Platform Tools – 23
    Android SDK Build-Tools – 18.0.1
    Google Play Services – Rev. 26**

请帮我解决这个问题。我需要做哪些配置更改?

【问题讨论】:

是你的项目和库在同一个工作区 你用的是eclipse还是android studio? @KaveeshKanwal 我正在使用 eclipse @koutuk 是的。在同一个工作区。 Rohan 这似乎只是一个导入问题... 【参考方案1】:

您可能需要将“构建工具版本”升级到某个最新版本。

【讨论】:

【参考方案2】:

由于 GMS 库与您的项目在同一个工作区中,我猜它只是没有链接。

在 Eclipse Package Explorer 中右键单击,选择 Properties,然后从左侧列表中选择 Android

点击右窗格底部的“添加..”按钮,然后选择 google-play-services-lib(或类似的东西)将库添加到列表中。

检查您的 project.properties 文件(在项目的根文件夹中)。它应该有这样的一行:

android.library.reference.1=../google-play-services-lib

现在清理项目并尝试再次构建它。希望它会有所帮助。

【讨论】:

感谢您的回复。我做了同样的事,但没用。

以上是关于包含Android项目的第三方库发生错误的主要内容,如果未能解决你的问题,请参考以下文章

android studio gradle dependencies 包存放在哪儿

将 Android 和 iOS 库导入 Flutter 项目

错误:清单合并失败并出现多个错误,请参阅日志

Proguard 由于特定的第三方库而产生运行时错误

Android Studio 打包AAR和第三方静态库

在 android 项目中使用 Kotlogram 库