gpt4 book ai didi

java - Android 库中的 Android NoClassDefFound

转载 作者:行者123 更新时间:2023-12-03 18:06:04 25 4
gpt4 key购买 nike

我有一个 Android 库,我在两个不同的项目中使用它。在其中之一中,我可以正确使用该库。但是,在第二个项目中,我遇到了 NoClassDefFound 异常。

08-31 07:

49:23.155 7073-7073/com.my.android.app E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.my.android.app, PID: 7073 java.lang.NoClassDefFoundError: com.my.android.library.MyClass

未找到的类在 APK 内。我可以在 classes.jar 中看到它
调试的时候可以进入类的代码,但是执行的时候就崩溃了。
最后,我安装了全新的 Android Studio 2.2 并使用了 APK 分析器,我可以在 classes.dex 中准确地看到它应该在的位置。

最佳答案

您的项目和库依赖项可能已达到 64K 方法引用限制,这会导致创建多个 dex 文件。
要确保 multidex 是问题的根源,请尝试:

1- 添加 multidex dependency到您项目的build.gradle :

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

2- 添加 multiDexEnabled true给您的 build.gradle文件 :
defaultConfig {
applicationId "your.package.name"
minSdkVersion 14
targetSdkVersion 24
versionCode 1
versionName "1.0"
multiDexEnabled true
}

3- 为您的项目创建一个扩展 MultidexApplication 的应用程序类:
public class MyApplication extends MultiDexApplication

4-更改 AndroidManifest.xml使用 MyApplication 类作为应用程序的入口点:
    <application
android:name=".MyApplication" //the classpath to MyApplication
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">

关于java - Android 库中的 Android NoClassDefFound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39596102/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com