2017-10-06 84 views
1

我的應用程序是一個擴展MultiDexApplication的自定義類。multiDexKeepFile被忽略/不工作

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"> 

當我嘗試在三星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

'機器人:名字= 「CustomApp」' –

+1

@IntelliJAmiya抱歉它是一個錯字 - 但我已經試過了,我仍然得到這個錯誤:/ – Benobab

+0

@Benobab按照本教程中的步驟啓用支持multidex https://developer.android.com/studio/build/multidex.html#mdex-pre-l –

回答

0

我曾經面臨過相同的問題,儘管添加了multidex。每當apk運行在Android 4.4小米(如果我正確記得它),就會出現問題。爲了解決方案的應用程序使用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 
    } 

}