208

Android 2.2 を使用して Android アプリケーションを開発しています。アプリケーションの APK サイズは 22.5 MB で、Samsung タブレット用の新しいビルドを作成したいと考えています。次のエラーが発生しました。

INSTALL_FAILED_DEXOPT

この種のエラーを解決するにはどうすればよいですか?

4

44 に答える 44

114

からエミュレータを再起動しAndroid SDK and AVD Managerてオプションを選択すると、Wipe User Dataこの問題は解決しました。

以下の画像で強調表示されているオプションを見つけることができます。

Androidエミュレータの起動時にユーザーデータを消去するオプション

于 2011-03-17T06:25:12.493 に答える
18

インストールしている古いバージョンのアプリには、変更された依存ライブラリ/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!

フーフー。

于 2011-06-14T08:36:24.510 に答える
14

Android Studioを使用している場合は、プロジェクトをきれいにしてみてください。

ビルド > プロジェクトの消去

于 2014-08-04T14:29:23.957 に答える
12

このエラー メッセージにはさまざまな原因が考えられるようです。私が遭遇したケースは実際のデバイス上にありました (したがって、エミュレータ ベースのソリューションは適用されませんでした)。

基本的に、これが発生した場合は、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)
于 2012-11-06T22:12:20.477 に答える
11

エミュレーターのRAMサイズと内部ストレージ容量を変更しました今ITは機能しています... Eclipse AVDマネージャーで

于 2015-06-01T08:19:58.553 に答える
8

問題を解決するには、Instant Run を無効にする必要がありました。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)

于 2016-02-04T21:01:38.097 に答える
5

私は Android Studio を使用していますが、同じエラーが発生しました。

メインModulのビルドフォルダーを削除すると役立ちました。すべてを削除した後、通常に戻ります。

于 2014-10-14T07:50:13.383 に答える
3

classes.dexファイナルに進まない.apkgradlew --offline clean && gradlew --offline assembleDebug毎回私のために固定されたものを実行しています。その時点から、Android Studio からアプリの起動を再開できます。

編集:上記の前に、タスクマネージャーに移動して、すべてのプロセスcmd.execonhost.exeプロセス(またはaaptスタックしたプロセスのみ)を強制終了します。そうaaptしないと、悪名高いエラーでコマンドラインから起動したときにクラッシュします-1073741819

于 2014-10-01T12:04:56.477 に答える
3

同じエラーが発生し、内部ストレージのサイズを増やすことで修正しました。

内部ストレージは最初は 32MB に設定されていましたが (私は知っています)、そこにいくつかの APK をインストールしました。

于 2014-12-05T04:37:46.983 に答える
2

build.gradle でコンパイルを変更し、最新バージョンにビルドします。そしてそれは私のために働いた。

================

android {
    compileSdkVersion 22
    buildToolsVersion "22"
于 2015-03-18T18:25:06.873 に答える
1

Proguard を使用して APK を縮小することを検討してください。proguard でコードを縮小/最適化せずに古い Samsung Galaxy Ace 2.3.6 デバイスに 25MB 以上の大きな APK をインストールしようとすると、同じ問題が発生します。

ジャンボ モードとデバイスの再起動が機能していません。

于 2014-10-01T08:42:30.410 に答える
1

There's no generic solution, you have to find the error reported on your Logcat to be able to figure it out. Sometimes it's a class that can't be 'dexed' due to an usage of a class not available on the specified Target API for instance. Or it could be a class that you're making reference in your code, but the library that it is in is not being packaged.

于 2014-08-13T20:05:35.133 に答える
1

2.3 デバイスにインストールしようとすると、この問題が発生しました (4.0.3 では問題ありません)。それは、私が使用していたlibプロジェクトが原因で、すでにAndroidにあるもの、たとえばHttpClientやXMLパーサーなどのための複数のjarがあったためでしたlogcat。現在。役に立たない元のエラーがあります。

于 2013-10-18T11:31:00.917 に答える
1

私の場合、API 21 および 22 を実行している一部のデバイスで問題が発生していました。android:vmSafeMode="true"マニフェストでapplicationタグの下に設定すると、問題が解決しました。ただし、リリース ビルドでは推奨されないため、values フォルダーに 2 つの xml ファイルを作成しました。古い API のデフォルトのもの:

<resources>
    <bool name="vm_safe_mode">true</bool>
</resources>

API の >= 23 with falsevalue についても同じです。その場合、新しい OS を搭載したデバイスは影響を受けず、古いものは少なくとも動作します。

于 2020-06-29T10:35:28.803 に答える
1

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
    }
于 2018-09-06T14:01:06.420 に答える
0

メソッド名にいくつかの Unicode 文字が含まれていたときに (何よりも、パワーポイント ファイルからのコピー/貼り付けが原因で)、Dalvik が気に入らなかったときに、この問題が発生しました。これは、APK のインストール中に Logcat の出力を確認することで確認できます。

これは実際のデバイス上にありました。

于 2013-06-26T07:30:26.907 に答える
0

Android Studio で File -> Invalidate caches/ restart をクリックします。エミュレータではなくデバイスでこのエラーが発生したときに、このエラーが発生したときに、これがうまくいきました。

于 2016-04-27T15:59:33.577 に答える
0

たぶんこれが役立ちます:

  1. エミュレーターを起動する前にユーザー データをワイプします。
  2. プロジェクトをきれいにする
  3. 不要な依存関係を削除します....
于 2015-09-12T18:29:30.903 に答える
0

SDK 21 の Android バージョン 4 サポートのバージョンを変更したところ、このエラーが発生しました。そのため、古いバージョン (21 より前) のサポートのバージョンに戻しましたが、動作しました。エラーはandroid 2.3でのみ発生していました

于 2014-11-04T00:50:57.823 に答える
0

電話の日時を修正し (デフォルトの日付は 1980 年 1 月 1 日でした)、プロジェクトをクリーンアップすることで解決しました。

于 2014-10-14T15:08:34.083 に答える
0

新しいビルド ツール 24.0.1 を更新しようとしたときに、この問題に遭遇しました。インターネット接続が失われ、ツールが正常にダウンロードされませんでした。その後、このエラーが発生し、解決に多くの時間を費やしました。しかし、ビルドツールを正常に更新すると、問題は解決しました。幸運を。

于 2014-12-16T22:51:46.770 に答える
0

使用していたライブラリとの不一致があったため、この問題に直面しました

Android SDK を最新のものに更新することで解決しました。SDKマネージャーが更新を示しているかどうかを確認してから完全に更新し、プロジェクトをクリーンアップしてから実行すると、動作します:)

于 2015-07-06T12:59:26.633 に答える
-1

これは私自身が何度も遭遇した問題のようですが、今回は共有された解決策はどれも役に立ちませんでした。

プロジェクトのディレクトリに移動し、build/intermediates/dex-cache/cache ファイルを見つけます。削除してください - 名前が示すように、プロジェクトの依存関係やビルド ツールのバージョンなどに変更を加えた場合、古い可能性があるキャッシュされた dex ファイルです。

于 2016-04-09T19:54:53.057 に答える
-3

エラー INSTALL_FAIL_DEXOPT がある場合は、マニフェスト android:targetSdkVersion を参照してください。バージョン < 21 のサンプルを設定します。

アンドロイド:targetSdkVersion="19"

これは私にとってはうまくいきました。

于 2016-04-11T13:38:46.133 に答える