2015-10-25 12 views
7

Ho ricevuto il seguente errore.VM ha il supporto multidex, la libreria di supporto MultiDex è disabilitata

eccezione irreversibile: principale

  • VM con la versione 2.1.0 ha il supporto multidex
  • installare
  • VM ha il supporto multidex, libreria di supporto MultiDex è disabilitata.
  • installazione
  • VM ha supporto multidex, la libreria di supporto MultiDex è disabilitata.
  • Spegnimento VM

ecco il mio build.gradle, ho consente al multidex nella parte Android,

apply plugin: 'com.android.application' 


android { 
compileSdkVersion 23 
buildToolsVersion '23.0.0' 

defaultConfig { 
    applicationId "com.mycompany.newlogin" 
    minSdkVersion 15 
    targetSdkVersion 22 
    versionCode 1 
    versionName "1.0" 
    multiDexEnabled true 
} 

buildTypes { 
    release { 
     minifyEnabled false 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
    } 
} 
productFlavors { 

} 
useLibrary 'org.apache.http.legacy' 
} 



dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:multidex:1.0.0' 
compile 'com.google.guava:guava-jdk5:17.0' 
compile 'com.android.support:appcompat-v7:23.0.1' 
compile 'com.android.support:design:23.0.1' 
//compile 'org.apache.httpcomponents:httpcore:4.4.1' 
compile 'org.apache.httpcomponents:httpclient:4.5' 
compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2' 

} 

e il mio file manifesto è

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.mycompany.newlogin" > 
<uses-permission android:name="android.permission.INTERNET"/> 


<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" 
    android:name="android.support.multidex.MultiDexApplication"> 
    <activity 
     android:name=".MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".Login" 
     android:label="@string/title_activity_login" > 
    </activity> 
    <activity 
     android:name=".Register" 
     android:label="@string/title_activity_register" > 
    </activity> 
</application> 
</manifest> 
+0

ce l'hai una classe che si estende dalla applicazione? – Baniares

+1

Ho MainActivity di classe che estende AppCompactActivity – Anil

+1

Da documenti: questa libreria fornisce compatibilità per piattaforme con livello API da 4 a 20. Questa libreria non fa nulla sulle versioni più recenti della piattaforma che forniscono supporto integrato per i file dex secondari. Ho controllato il codice su [grepcode] (http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.0.2_r1/android/support/multidex/MultiDex.java) –

risposta

2

creare un la classe lo nomina App e si estende da MultiDexApplication in questo modo:

import android.support.multidex.MultiDexApplication; 

public class App extends MultiDexApplication { 
    //you can leave this empty or override methods if you like so the thing is that you need to extend from MultiDexApplication 
} 

nella vostra manifesta aggiungere App come nome dell'applicazione, proprio come questo

<application 
     android:name=".App" // <<< this is the important line! 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name"> 

Dopo l'aggiunta di tutto fare una generazione pulita e dovrebbe funzionare ora :).

+0

Ho caricato il mio file manifest, per favore dare un'occhiata e aiutarmi dove aggiungere la tua nel mio file manifest – Anil

+1

'android: name =" android.support.multidex.MultiDexApplication "' -> Sostituisci con la tua classe personalizzata – kientux

+0

Ho fatto ma sta ancora mostrando lo stesso errore – Anil

1

Override metodo attachBaseContext nella classe applicazione

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

Questo presuppone che esista una classe che estende ** Applicazione ** –

Problemi correlati