INSTALL_FAILED_DEXOPTに奇妙な問題があります。これは、エミュレータとデバイスのAndroid 5.0デバイスで発生します。奇妙なことに、デバッグモードでバリアントをビルドするとうまく機能します。
リリースに変更すると、5.0デバイスでのみこの例外が発生します。私はグーグルで利用可能なすべてのリンクを徹底的に調べました。
データをワイプする
初めてインストールできる新しいデバイスを購入しましたが、それでも同じ問題に直面しています。
プロジェクトはmultidexをサポートしています:-gradleでtrue
また、SDKツールのバージョンとビルドツールのバージョンを最新の24.4.0に変更してみました。
コンソールで
これらは、私たちが使用するビルドタイプです。
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-project.txt'
signingConfig signingConfigs.release
}
debug {
applicationIdSuffix ".debug"
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-project.txt'
signingConfig signingConfigs.debug
}
}
使用したSDKツールの画像:
デバイスにビルドがインストールされたことは一度もないことを保証できます。すでにインストールされている場合は、すべてクリアしました。
この世界の誰かがこの問題で私を助けることができますか?それは私たちを夢中にさせるからです.....
apkをAndroidにインストールする場合、Android最適化のためにdex2optを実行します。INSTALL_FAILED_DEXOPTエラーメッセージは、Androidデバイスがdexを最適化できないことを意味します。これは、dexサイズによって発生する可能性があります。「LinearAllocLimit」の警告またはエラーメッセージは、Androidモニターにあります。
それがdexサイズの問題である場合。これを設定に追加します。
afterEvaluate{
tasks.matching {
it.name.startsWith('dex')
}.each { dx ->
if(dx.additionalParameters == null){
dx.additionalParameters = []
}
//To avoid linearAlloc limit problem on Gingerbread and below
dx.additionalParameters += "--set-max-idx-number=50000"
dx.additionalParameters += "--minimal-main-dex"
}
}
およびインスタント実行=オンからオフ
お使いの携帯電話のゲストアカウントにアプリが誤ってインストールされていないか確認してください。
はいの場合は、そこからアンインストールまたは削除します。
お使いの携帯電話のすべてのユーザーアカウントに対してこれを行います。
追加のヒント:-
ビルド->プロジェクトのクリーンアップビルド->プロジェクトの再構築
Multidexが問題のようです。 AndroidはこれをLollipopデバイスでネイティブに処理します(一部のデバイスは正しく動作しますが、他のデバイスは問題があります)が、古いデバイスでmultidexライブラリを使用するため、古いデバイスが均一に動作する理由を説明できます( http://developer.Android.com/tools/building/multidex.html )。
ProGuardを使用したり、multidexを必要としないように依存関係の1つを一時的に削除したりできるように、65kの制限に十分に近づいていますか?それをサポートするライブラリがありますが、それを必要としないようにメソッド数を減らすことは一般的に良い考えです。一部のアプリが本当にそれを必要とするかもしれないことを私は知っていますが、最初にこれをチェックする価値があります。
また、きめ細かいGooglePlay開発者サービスモジュールを使用して調査します。すべてのGMSを取り込む場合、きめ細かいインクルードに切り替えると、メソッド数を大幅に減らすことができます: http://Android-developers.blogspot.com/2014/12/google-play-services-and-dex -method.html
これは、モジュールとプロジェクトのビルドファイルにあるGradleビルドツールのバージョンが異なることが原因である可能性があります。両方のファイルで同じバージョンを使用していることを確認し、クリーンアップして再度ビルドすると、問題がないはずです。
この問題は、Android Studioとプロジェクトの間のSDKの不一致が原因で発生する可能性があります。プロジェクトは古いSDKを使用していたので、同じにした後、プロジェクトをクリーンアップして再構築しました。行く。
このアプリ、およびデバイスに署名がある他のすべてのアプリをアンインストールしてみてください。プロジェクトをクリーンアップして、インストールを再開します。また、Dropboxを使用するなど、別の手段でアプリをインストールすることを検討する必要があります。