Android 2.2を使用してAndroidアプリケーションを開発しています。アプリケーションのAPKサイズは22.5 MBで、Samsungタブレット用の新しいビルドを作成したいと考えています。次のエラーが発生しました:
INSTALL_FAILED_DEXOPT
この種のエラーを解決するにはどうすればよいですか?
Android 2.2を使用してAndroidアプリケーションを開発しています。アプリケーションのAPKサイズは22.5 MBで、Samsungタブレット用の新しいビルドを作成したいと考えています。次のエラーが発生しました:
INSTALL_FAILED_DEXOPT
この種のエラーを解決するにはどうすればよいですか?
回答:
からエミュレータを再起動してAndroid SDK and AVD Manager
オプションを選択すると、Wipe User Data
この問題は解決しました。
以下の画像で強調表示されているオプションを見つけることができます。
adb kill-server
そして、adb start-server
あなたの問題を解決する必要があります。古いアプリが存在する可能性があります。その後、最初にアンインストールしてください。
これは私にとってはディスク容量に関係しているようです。新しくロールバックされた5.1エミュレータが「ディスク容量不足」エラーで起動し、エミュレータのプロパティを見ると、内部ストレージに割り当てられているデフォルトの容量は800MBと少なく見えます。
解決策は、したがって、これを増やすことでした(私は4GBに行きました)。奇妙なことに、エミュレーターは同じディスク容量の警告で起動しますが、工場出荷時の状態にリセット(エミュレーター内の[設定]-> [バックアップと復元])で完全に解決しました。
デフォルト設定ではそのままでは機能しないのは少し奇妙です。
インストールしている古いバージョンのアプリには、変更された依存ライブラリ/ jarがあります。アプリが参照している他のjarファイルを更新すると、この問題が発生しました。
古いバージョンをアンインストールする必要があるので、問題は発生しません...
[設定]-> [アプリケーション]-> [アプリケーションの管理]-> [アプリの検索とアンインストール]
INSTALL_FAILED_DEXOPTエラーは発生しません。お気に入り
[2011-06-14 01:23:40 - ProtectYourself] Installing ProtectYourself.apk...
[2011-06-14 01:24:26 - ProtectYourself] Installation error: INSTALL_FAILED_DEXOPT
[2011-06-14 01:24:26 - ProtectYourself] Please check logcat output for more details.
[2011-06-14 01:24:26 - ProtectYourself] Launch canceled!
うわー。
Android Studioを使用している場合は、プロジェクトをクリーンアップしてください。
ビルド>クリーンプロジェクト
このエラーメッセージにはさまざまな原因が考えられます。私が遭遇したケースは、実際のデバイス上にありました(そのため、エミュレーターベースのソリューションは適用されませんでした)。
基本的に、これが発生した場合は、LogcatフィルターをVerboseまたはWarnに設定します。これにより、原因に関する詳細情報を取得できます。
私の場合、私が取り組んでいるプロジェクト(大規模な既存のコードベース)にJUnitの複数のバージョンまたは競合するバージョンが含まれていました。デプロイしようとしたAndroidアプリには、依存関係としていくつかのライブラリプロジェクトがあり、誤って複数のJUnit jarファイルを含めるように設定していた。
一連のLogcatメッセージに基づいてこれを発見しました。WARN行が原因を示していることに注意してください。
DEBUG/dalvikvm(4808): DexOpt: 'Ljunit/framework/TestSuite$1;' has an earlier definition; blocking out
11-06 14:30:10.973: WARN/dalvikvm(4808): Invalid file flags in class Ljunit/runner/Sorter$Swapper;: 0209
11-06 14:30:10.973: null/libc(4808): Fatal signal 11 (SIGSEGV) at 0x00000004 (code=1), thread 4808 (dexopt)
Android Studio 3.4.1でこれに遭遇しましたが、古い(5.0)エミュレーターを使用しています。この手順(Macの場合)で問題が修正されました:
エミュレーターのRAMサイズと内部ストレージ容量を変更しました。ITが機能しています...日食AVDマネージャーで
私の答えを試してくださいhttps://stackoverflow.com/a/34918549/3737254
Android Studio 2.0を使用している場合は、インスタントランを無効にします。
ちなみに、インスタントランはAndroid Studio 2.0の新機能です(私は使用していません>。<)。
無効にする方法:設定->ビルド、実行、デプロイメント->即時実行->無効にすると、魔法のように動作します
楽しい!
この問題を解決するには、インスタントランを無効にする必要がありました。OS XでInstant Runを無効にするには、 Android Studio > Preferences > Build、Execution、Deployment > Instant Runに移動し、からチェックを外しますEnable Instant Run to hot swap code/resource changes on deploy (default enabled)
。
dexopt error. Application failed to install
。これを見つける前にadb kill-server
adb start-server
、Android Studioを再起動し、デバイスを出荷時設定にリセットしてみました。
今日、新しい仮想デバイスのAndroid Studioで同じ問題が発生しました。x86_64
画像をダウンロードして、同等のVDを再作成したようですx86
画像を修正してようです。
私INSTALL_FAILED_NO_MATCHING_ABIS
はこの場合にを得ると思っていましたが、どういうわけか私は立ち往生していましたINSTALL_FAILED_DEXOPT
x86
失敗しました。画像をダウンロードしてエミュレータをx86_64
エラーに変更した後、消えていました。API 21システムイメージを使用しました。
x86_64
イメージの代わりにイメージを使用する前に、このスレッドですべてを試しましたx86
。API 21 AVD(Nexus 5)も使用していました。
Android Studioを使用していますが、同じエラーが発生しました。
メインModulのビルドフォルダーを削除すると役立ちました。すべてを削除した後、通常に戻ります。
INSTALL_FAIL_DEXOPTは通常、classes.dexに設定された制限に関係しています。ICS以前のdexoptでは、5 MBを超えると失敗します。最近のバージョンのAndroidでは、8 MBまたは16 MBのバッファーを使用しています。
APKのclasses.dexのサイズを確認してください。また、dexには65536のメソッド/フィールド制限があるため、メソッド数が何であるかを確認するのも良いでしょう。
参照:
ビルドでjumboModeフラグを有効にした後、この問題に遭遇しました(dex.force.jumbo=true
)。新しいAndroidデバイスではすべてが正常に機能しましたが、Gingerbreadでのインストールは失敗しました。
したがって、厄介な65kの制限のためにアプリがジャンボモードを必要とする場合は、未使用のコード/文字列をいくつか切り取り、ジャンボモードをfalseに戻してみてください。
classes.dex
確定にはなりません.apk
。gradlew --offline clean && gradlew --offline assembleDebug
毎回私のために修正されたものを実行します。その後、Android Studioからアプリの起動を再開できます。
編集:私は、タスクマネージャに移動し、すべて殺す上記の言ったことをする前cmd.exe
とconhost.exe
プロセス(またはその中で一つだけaapt
捕まってしまったが)。さもなければaapt
、悪名高いエラーでコマンドラインから起動されたときにこれからクラッシュします-1073741819
。
build.gradle
ファイルを確認します。buildscriptの依存関係には、があるはずですclasspath 'com.android.tools.build:gradle:1.0.0-rc4'
。
アプリをアンインストールしても、INSTALL_FAILED_DEXOPTエラーが発生しました。Android Studio / gradleを使用している場合:Gradle cleanが私にとってはうまくいきました、Cheers。
2.3デバイスにインストールしようとすると、この問題が発生しました(4.0.3では問題ありません)。それは私が見てみるアンドロイドなどのHttpClientおよびXMLパーサなどですでにもののためだった持っていた複数のjarファイルを使用していたのlibプロジェクトに起因することになったlogcat
、それがすでにあることにより、それらにクラスをスキップした私に言っていたとして、これを見つけるために私を導きましたプレゼント。役に立たない元のエラーがありました。
一般的な解決策はありません。それを理解するには、Logcatで報告されたエラーを見つける必要があります。たとえば、指定されたターゲットAPIで利用できないクラスの使用が原因で、それを「デクス」できないクラスの場合があります。または、コードで参照しているクラスである可能性がありますが、それが含まれているライブラリはパッケージ化されていません。
私の場合、これはkotlinプラグイン、バージョン1.1.51のバグでした
https://youtrack.jetbrains.com/issue/KT-20034
このエラーは古いデバイス(API 16)で発生しました。
@Parcelizeアノテーションを削除してこのコードジェネレーターで置き換えることにより、これを修正しました:https : //github.com/nekocode/android-parcelable-intellij-plugin-kotlin
targetSdkVersion 22 // 17 ==========================>この数値をデバイスのAndroid OSのバージョン以下に設定すると役立つ場合があります
defaultConfig {
applicationId "software.nhut.personalutilitiesforlife"
minSdkVersion 16
targetSdkVersion 22//17==========================> set this number less then or equal to the version of Android OS on devices might help
versionCode 5
versionName "1.26"
// Enabling multidex support.
multiDexEnabled true
}
Dalvikが気に入らなかったメソッド名に(何よりも、PowerPointファイルからのコピー/貼り付けが原因で)Unicode文字が含まれていると、この問題が発生しました。APKをインストールしようとしているときにLogcatの出力を確認すると、これを確認できます。
これは実際のデバイス上にありました。
新しいビルドツール24.0.1を更新しようとしたときに、この問題に遭遇しました。インターネット接続が失われ、ツールが正常にダウンロードされなかった後、このエラーが発生し、解決に多くの時間を費やしました。しかし、私が正常にビルドツールを更新した場合-問題は解決しました。幸運を。