2015-10-25 5 views
7

次のエラーが発生します。VMにマルチレックスのサポートがあり、MultiDexサポートライブラリが無効にされています

致命的な例外:バージョン2.1.0でのVM

  • メインは
  • VM multidexサポートしているをインストールmultidexサポート
  • を持って、MultiDexサポートライブラリが無効になっています。
  • install
  • VMには複数のサポートがあり、MultiDexサポートライブラリは無効です。
  • ここVM

をシャットダウン私のbuild.gradleですが、私は、Androidの一部で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

私はAppCompactActivityを拡張するMainActivityクラスを持っています – 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から次のように拡張します。

マニフェストで210

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 
} 
は:)すべてがクリーンビルドを作成し、それが動作するようになりました追加した後、ちょうどこの

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

のようにアプリケーション名としてAppを追加します。あなたは、アプリケーションから継承したクラスを

+0

私のマニフェストファイルをアップロードしました。マニフェストファイル – Anil

+1

のアンドロイド:name = "android.support.multidex.MultiDexApplication" ' - >に置き換えて、をどこに追加すればいいか教えてください。あなたのカスタムクラス。 – kientux

+0

私はしましたが、それでも同じエラーが表示されています – Anil

1

オーバーライドアプリケーションクラスのattachBaseContextメソッド

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

これは、**アプリケーション**を拡張するクラスがあることを前提としています –

関連する問題