2017-10-06 1 views
1

Meine Anwendung ist eine benutzerdefinierte Klasse, die MultiDexApplication erweitert.multiDexKeepFile ignoriert/funktioniert nicht

public class CustomApp extends MultiDexApplication { 
    @Override 
    public void onCreate() { 
     super.onCreate(); 
     //TODO 
    } 
} 

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

Wenn ich versuche, die apk auf einem Samsung-s6 (API 7.0) laufen zu lassen, funktioniert alles einwandfrei. Aber, wenn ich versuche, es auf einem THOMSON zu laufen (API 4.2.2), bekomme ich diesen Fehler:

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) 

Also das habe ich that - ich multidex-config.txt erstellt und hinzugefügt, um diese Zeile:

me/blu/app/helper/CustomApp.class 

Diese Datei befindet sich bei Bedarf direkt neben meiner Build.Gradle-Datei.

Dann habe ich diese multiDexKeepFile file('multidex-config.txt') in meine zwei BuildTypes, aber auch unter multiDexEnabled true.

Es funktioniert immer noch nicht. Ich würde schätzen einige Hilfe ^^

Danke.

+0

'android: name = " CustomApp"' –

+1

@IntelliJAmiya traurig es ist ein Tippfehler - aber ich habe das bereits ausprobiert und erhalte immer noch diesen Fehler:/ – Benobab

+0

@Benobab folge den Schritten in diesem Tutorial um die Unterstützung von multidex zu aktivieren https://developer.android.com/studio/build/multidex.html#mdex-pre-l –

Antwort

0

Ich hatte einmal mit den gleichen Problemen konfrontiert, obwohl das Hinzufügen der Multidex. Das Problem tritt auf, wenn apk in Android 4.4 Xiaomi läuft (wenn ich mich richtig erinnere). Zur Lösung wird mit MultiDex.install() in app wie folgt aus:

public class CustomApp extends Application { 
    @Override 
    protected void attachBaseContext(Context base) { 
    super.attachBaseContext(base); 
    MultiDex.install(this); 
    } 
} 

dann das jumboMode true in Modulbuild.gradle:

android { 
    ... 
    dexOptions { 
     jumboMode = true 
    } 

}