2

私のプロジェクトをAndroid Studio 2.2に移動しましたが、私はapkを生成できません。Android Studio 2.2に移動した後のDexIndexOverflowException

エラー:実行はタスクに失敗しました ':アプリ:transformClassesWithDexForRelease'

は、私は、このエラーメッセージが表示されました。

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536

このエラーを削除するにはどうすればよいですか?

+0

プロガードの縮小機能を使用していますか?もしそうでなければ、あなたはそれを有効にしてもこのエラーを受け取りますか? – Michael

答えて

1

プロジェクトのコンパイルにこの新しいクラスを宣言する必要があり、DEXは65536の方法まで扱うことができます。

あなたのプロジェクトのコンパイルが65536の方法よりもオーバーしたので、あなたは

でそれを解決するためにhttps://developer.android.com/studio/build/multidex.htmlより良いアプローチこちらをご覧くださいよりDEXファイルにコードを分割するMultiDexを、有効依存関係またはを向上させる必要があり、あなたの場合。

3

プロジェクト内のメソッド参照の数が、1つのdexファイルに存在する可能性のある最大数である65536を超えています。この場合は、次の手順では、タイプMultiDexのアプリケーションを宣言する必要があります。

1-アプリのレベルbuild.gradleにmultidex依存性を追加します。

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

2 - であなたのdefaultConfigsでmultidexを有効にしますアプリレベルのbuild.gradle:

android { 

defaultConfig { 
    ... 

    // Enabling multidex support. 
    multiDexEnabled true 
    } 
... 
} 

3 - は、アプリケーションのエントリポイントとして機能しますMultidexApplicationを拡張する新しいクラスにMyApplicationを定義します。

public class MyApplication extends MultidexApplication 

4 - 最後に、あなたがDEXファイルを生成し、あなたのAndroidManifest.xml

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

<application 
    android:name=".path-to.MyApplication"> 
    ... 
</application> 
</manifest> 
関連する問題