2016-06-21 17 views
1

Ich habe eine Anwendung, und ich habe Singleton. Und ich habe gerade 64k Fehler. Und ich es lösen, indem Sie die Abhängigkeiten der Zusammenstellung und in der gradle - multiDexEnabled trueMultidex und Singleton-Klasse verwendet Android: Name in der Manifest Application Tag

<application 
    android:allowBackup="true" 
    android:allowClearUserData="true" 
    android:fullBackupContent="true" 
    android:hardwareAccelerated="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:largeHeap="true" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme" 
    android:name="app.project.SingletonController" 
    > 

<!--android:name="android.support.multidex.MultiDexApplication"--> 

Doch es sagt here in der gleichen Verbindung, die in sollte in den Manifest aufgenommen werden -><application android:name = ">die, die ich oben kommentiert.

Wie werde ich dieses los?

Die android:name="" wird dupliziert werden und wird Fehler erzeugen, wenn ich es platziere.

Antwort

1

Sie definieren bereits eine benutzerdefinierte Anwendungsklasse SingletonController für Ihre App.

MultiDexApplication ist eine einfache Utility-Klasse, die Sie als Superklasse für Ihre eigenen SingletonController verwenden können. Wenn aus irgendeinem Grund dies nicht möglich ist, müssen Sie die Funktionalität selbst implementieren

@Override 
protected void attachBaseContext(Context base) { 
    super.attachBaseContext(base); 
    MultiDex.install(this); 
} 
+0

Also werde ich diese in meinem 'SingletonController'' Override'? Nur? Nicht anwendbar auf andere "Aktivitäten"? – RoCk

+0

'SingletonController' sollte direkt oder indirekt' Application' erweitern. Wenn es direkt ist, erweitern Sie stattdessen 'MultiDexApplication'. Andernfalls rufe 'MultiDex.install (this) 'auf. Das ist es für dein Problem hier. – tynn

+0

Ich habe das schon in meinem 'SingletonController''Override'. Vielen Dank. Ist das auch "Overridable" neben "SingletonController" wie "MainActivity"? – RoCk

0

Seit 3. Dezember 2014, Build-Tools 1.0.0-rc1 veröffentlicht wurde. Nun, alles, was Sie tun müssen, ist, ändern Sie Ihre build.gradle

android { 
compileSdkVersion 22 
buildToolsVersion "23.0.0" 

    defaultConfig { 
     minSdkVersion 14 //lower than 14 doesn't support multidex 
     targetSdkVersion 22 

     // Enabling multidex support. 
     multiDexEnabled true 
    } 

}

Abhängigkeiten { Kompilierung 'com.android.support:multidex:1.0.1' }

Wenn Sie Komponententests ausführen, sollten Sie dies in Ihre Anwendungsklasse aufnehmen:

public class YouApplication extends Application { 

@Override 
protected void attachBaseContext(Context base) { 
    super.attachBaseContext(base); 
    MultiDex.install(this); 
} 

}

+0

Vielen Dank für Ihre Antwort. Ich habe diese Schritte bereits getan, als was ihre Ärzte sagten. Was mich verwirrt, ist im 'Manifest'-Teil. :) – RoCk

+0

okay, bro kein Problem – Mohan