2015-10-25 6 views
7

Я получаю следующую ошибку.VM имеет поддержку multidex, библиотека поддержки MultiDex отключена

FATAL ИСКЛЮЧЕНИЕ: главный

  • VM с версией 2.1.0 имеет multidex поддержки
  • установки
  • VM имеет multidex поддержки, библиотека поддержки MultiDex отключена.
  • установить
  • VM имеет поддержку multiidex, библиотека поддержки MultiDex отключена.
  • Выключение ВМ

вот мой build.gradle, я имею позволяет multidex в андроида части,

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' 

} 

и мой манифест файл

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

у вас есть класс, расширяющий из приложения? – Baniares

+1

У меня есть класс MainActivity, который расширяет AppCompactActivity – Anil

+1

Из документов: эта библиотека обеспечивает совместимость для платформ с уровнем API с 4 по 20. Эта библиотека ничего не делает на более новых версиях платформы, которые обеспечивают встроенную поддержку вторичных файлов dex. Я проверил их код на [grepcode] (http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/5.0.2_r1/android/support/multidex/MultiDex.java) –

ответ

2

создать класс позволяет назвать его App и простираться от MultiDexApplication следующим образом:

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 
} 

в манифесте добавить App в качестве имени приложения, как эта

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

После добавления все сделать чистую сборку, и это должно работать :).

+0

Я загрузил файл манифеста, пожалуйста, взгляните и помогите мне, где добавить ваше приложение в файл манифеста – Anil

+1

'android: name =" android.support.multidex.MultiDexApplication "' -> Заменить это ваш пользовательский класс. – kientux

+0

Я сделал, но он по-прежнему показывает ту же ошибку – Anil

1

Override метод attachBaseContext в прикладном классе

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

Это предполагает, что существует класс, который расширяет ** Приложение ** –

Смежные вопросы