我正在使用'androidx.multidex:multidex:2.0.0'
,并且使用以下命令从清单中指向MultiDexApplication类:
<application
android:name="androidx.multidex.MultiDexApplication"
...
在build.gradle上,我还添加了以下条目:
defaultConfig {
...
multiDexEnabled true
...
在低于5.0(API 21)的Android版本中运行该应用程序时,出现以下异常:
java.lang.RuntimeException: Unable to instantiate application androidx.multidex.MultiDexApplication: java.lang.ClassNotFoundException: Didn't find class "androidx.multidex.MultiDexApplication" on path [...]
我使用APK浏览器,看到在classs2.dex文件中的MultiDexApplication类和其他MultiDex帮助器类。这可能就是为什么找不到类的原因。
我必须强制这些类位于主classes.dex文件中吗?如何解决?
答案 0 :(得分:0)
尽管有问题的应用程序类是我们的自定义Application类,但在迁移到AndroidX之后我遇到了同样的问题。我试图从Android Studio清理项目,但没有成功,因此最终我手动删除了所有构建文件夹,并为Android Studio做好了“使缓存无效并重新启动”的工作,这似乎已经解决了问题至少是我。
答案 1 :(得分:0)
使用multiDexKeepFile
选项要求MultiDexApplication
最终出现在主dex文件中。
答案 2 :(得分:-1)
尝试这个。希望对您有帮助。
{{1}}