multiDexKeepFile忽略/不工作

时间:2017-10-06 07:57:50

标签: android multidex android-multidex

我的应用程序是一个扩展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下面。

它还没有用。我非常感谢一些帮助^^

感谢。

1 个答案:

答案 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
    }

}