我的应用程序是一个扩展MultiDexApplication的自定义类。
public class CustomApp extends MultiDexApplication {
@Override
public void onCreate() {
super.onCreate();
//TODO
}
}
在我的AndroidManifest.xml中:
<application
android:name=".helper.CustomApp"
android:allowBackup="false"
android:icon="@mipmap/ic_launcher"
android:label="${app_name}"
android:largeHeap="true"
android:screenOrientation="portrait"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:replace="android:allowBackup, android:label">
当我尝试在samsung s6(API 7.0)上运行apk时,一切正常。但是,当我尝试在THOMSON(API 4.2.2)上运行它时,我收到此错误:
FATAL EXCEPTION: main
java.lang.RuntimeException: Unable to instantiate application me.blu.app.helper.CustomApp: java.lang.ClassNotFoundException: Didn't find class "me.blu.app.helper.CustomApp" on path: DexPathList[[zip file "/data/app/me.blu.app-1.apk"],nativeLibraryDirectories=[/data/app-lib/me.blu.app-1, /vendor/lib, /system/lib]]
at android.app.LoadedApk.makeApplication(LoadedApk.java:504)
所以我做了that - 我创建了一个multidex-config.txt并添加了这一行:
me/blu/app/helper/CustomApp.class
此文件根据需要位于我的build.gradle文件旁边。
然后我在我的两个builTypes中添加了这个multiDexKeepFile file('multidex-config.txt')
,但是也在multiDexEnabled true
下面。
它还没有用。我非常感谢一些帮助^^
感谢。
答案 0 :(得分:0)
我曾经面临同样的问题,尽管添加了multidex。每当apk在Android 4.4小米中运行时都会出现问题(如果我没记错的话)。解决方案是在app中使用MultiDex.install()
,如下所示:
public class CustomApp extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
MultiDex.install(this);
}
}
然后在模块中添加jumboMode true
build.gradle
:
android {
...
dexOptions {
jumboMode = true
}
}