2016-10-06 6 views
0

を生成します。私はそれが動作エミュレータでアプリケーションを実行するが、私は署名済みAPKを生成したいとき、私は次のエラーメッセージを取得すると署名されたAPKエラー

[Error:Execution failed for task ':app: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]

をこのエラーメッセージは何を意味し、そこにありますこの問題を解決する方法は?

Screenshot of error

+0

EclipseとAndroid Studioはまったく異なるものですが、どちらを使用していますか? –

+0

問題があれば、提案と更新を試してください。 –

答えて

1

DexIndexOverflowException:オーバーフローが制限に達したわけ。

あなたdexファイルサイズは、それはあなたがmultidexサポートに

defaultConfig { 
    ... 
    // Enabling multidex support. 
    multiDexEnabled true 
} 
を有効にするには、build.gradleするには、以下の追加プロジェクトに follow the official link of docs

または

Multidexサポートを実装する必要が限度すなわち64Kです達しています

マニフェストアプリケーションタグにアプリ名multidexサポートを設定します

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.android.multidex.myapplication"> 
    <application 
     ... 
     android:name="android.support.multidex.MultiDexApplication"> 
     ... 
    </application> 
</manifest> 

そして、あなたは、アプリケーションクラスが、その後いくつかのトリックが便利かもしれませんsuper.onCreate

MultiDex.install(getTargetContext()); 
super.onCreate(arguments); 

前にDEXを有効にしている場合:それを追加するのではなく、GMSなどのような特定のGoogle Playの依存性を、不要な依存関係、ファイルを削除し、使用全体としてプラスルールのベストプラクティスを使用することができますfollow the link for an example

+0

また、Progaurdは未使用のコードを削除して65k以下のメソッド制限をとるオプションです – Shmuel

+0

@Shmuelえええええええええええええええええええええええええんそうでなければプロガードは非常に効率的ですが、プロガードにはこれを縮めないようにと言わなければなりませんが(POJOなど)、それは:P:Pなので、効果があるかどうかはプロジェクトに依存しますが、 –

+0

Progaurdはサードパーティのライブラリを縮小するのに本当に便利です。私はプロジェクトから20k行以上のコードを削除しました。 – Shmuel

関連する問題