Vla*_*nko 1 android gradle android-multidex androidx
我正在尝试将Multidex 支持添加到我的应用中。但是我得到一个错误:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo: java.lang.ClassNotFoundException: Didn't find class "androidx.multidex.MultiDexApplication" on path: DexPathList[[zip file "/data/app/com.dfn.partner-2.apk"],nativeLibraryDirectories[/data/app-lib/se.android-2, /vendor/lib, /system/lib]]
Run Code Online (Sandbox Code Playgroud)
我的gradle有:
defaultConfig {
multiDexEnabled true
}
Run Code Online (Sandbox Code Playgroud)
和
depenencies {
...
implementation 'androidx.multidex:multidex:2.0.1'
...
}
Run Code Online (Sandbox Code Playgroud)
我的AndroidManifest.xml具有:
<application
android:name="androidx.multidex.MultiDexApplication"
... >
...
</application>
Run Code Online (Sandbox Code Playgroud)
有什么事吗
小智 3
对于 API 级别 < 21,平台使用 Dalvik 运行时来执行应用程序代码。对于这种情况,multidex 库应该是应用程序主 DEX 文件的一部分,然后它可以管理对其他 DEX 文件及其包含的代码的访问。
在您的情况下,看起来主 dex 文件中不存在 Multidex 库,因此在启动过程中,您的应用程序会出现错误:java.lang.ClassNotFoundException: Didn't find class "androidx.multidex.MultiDexApplication"
您需要在 multiDexKeepFile 或 multiDexKeepProguard 中显式指定这些 multidex 类,以将其标记为主 dex 中所需的。
多DexKeepFile
android {
buildTypes {
release {
multiDexKeepFile file('multidex-main-dex-list.txt')
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
multidex-main-dex-list.txt 的内容如下:
androidx.multidex.MultiDexApplication
multiDexKeepProguard
android {
buildTypes {
release {
multiDexKeepProguard file('multidex-main-dex-list.pro')
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
multidex-main-dex-list.txt 的内容如下:
-keep class androidx.multidex.MultiDexApplication
归档时间: |
|
查看次数: |
3059 次 |
最近记录: |