2017-05-19 5 views
1

私はMultiDexをセットアップしましたが、私の場合は動作していないようですが、何が欠けていますか?いくつかのアプリで同じ設定をして、そこで働いた。androidでmultiDexを正しく機能させるには

また、新しいAndroid Studio 3.0 Canary 1を使用しています(影響がある場合)。

MANIFEST

<application 
     android:name=".Global" 
     android:largeHeap="true" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 

のGradle

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 
    defaultConfig { 
     minSdkVersion 15 
     targetSdkVersion 25 
     multiDexEnabled true 
     useLibrary 'org.apache.http.legacy' 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 


} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    ... 
    compile 'com.android.support:multidex:1.0.1' 

} 

アプリケーションクラス

public class Global extends MultiDexApplication { 
    @Override 
    public void onCreate() { 
     super.onCreate(); 
     MultiDex.install(this); 
    } 
} 

のエラー

Error:Error converting bytecode to dex: 
Cause: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/zzbrq; 
Error:com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/zzbrq; 
Error: at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:608) 
Error: at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:563) 
Error: at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:545) 
Error: at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:167) 
Error: at com.android.dx.merge.DexMerger.merge(DexMerger.java:194) 
Error: at com.android.builder.dexing.DexArchiveMergerCallable.mergeDexes(DexArchiveMergerCallable.java:66) 
Error: at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:54) 
Error: at com.android.builder.dexing.DexArchiveMergerCallable.call(DexArchiveMergerCallable.java:37) 
Error: at java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1424) 
Error: at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289) 
Error: at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056) 
Error: at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692) 
Error: at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157) 
Error:Execution failed for task ':app:transformDexArchiveWithDexMergerForDebug'. 
> com.android.build.api.transform.TransformException: com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/internal/zzbrq; 
+0

この解決方法はありますか?突然同じことに走った。 – mttmllns

答えて

0
android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.2" 
    defaultConfig { 
     minSdkVersion 15 
     targetSdkVersion 25 
     useLibrary 'org.apache.http.legacy' 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      multiDexEnabled true 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:multidex:1.0.1' 
} 
+0

あなたの答えを説明してください。 – Relm

+0

ただbuildDypes内にmultiDexEnabledを入れてください –

+0

それでも、同じエラーがありました。 – Relm

1

この

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

MultiDex.install(これを)試してみてください。この行は上から削除

+0

確認できないと思われるものは何ですか? – Relm

+0

dexOptions { javaMaxHeapSize "4g" }グラデーションでヒープサイズを大きくする必要があると思います。 –

0

を作成するには、この

defaultConfig { 
    multiDexEnabled true 
    minSdkVersion 19 
    targetSdkVersion 25 
    versionCode 1 
    versionName "1.0" 
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
} 

ようなあなたのGradleで真multltidexenavbledセットはあなたのmanifiestファイルが定義イム一つのクラス

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

輸入このライブラリ

compile 'com.android.support:multidex:1.0.1' 

を作成しますこのようなあなたのアプリケーション名properrty

 android:name="com.pkg.Multi_Dex" 
+0

まだ同じエラーが発生しています。 – Relm

+0

貼り付けエラーmsg –

+0

質問のエラーを参照してください。 – Relm

0

のGradleファイル..あなたの活動のofficial link

android { 
     compileSdkVersion 22 
     buildToolsVersion "23.0.0" 

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

       // Enabling multidex support. 
       multiDexEnabled true 
      } 
    } 

    dependencies { 
     compile 'com.android.support:multidex:1.0.1' 
    } 

chnage。

public class YouApplication extends Application { 

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

} 
関連する問題