[解決済み] Androidのdexでビルド時にBufferOverflowExceptionが発生する
質問
特定のAndroidプロジェクトをコンパイルする際、Windowsマシンでのみ
java.nio.BufferOverflowException
の間にdex. この問題は、Eclipseを使用したときと、Antを使用したときの両方で発生します。
Antを使用した場合の出力は。
...
[dex] Pre-Dexing C:\MyProject\libs\android-support-v4.jar -> android-support-v4-5f5341d3c1b10a79d7d93f9c1e64421e.jar
[dex] Converting compiled files and external libraries into C:\MyProject\bin\classes.dex...
[dx]
[dx] UNEXPECTED TOP-LEVEL EXCEPTION:
[dx] java.nio.BufferOverflowException
[dx] at java.nio.Buffer.nextPutIndex(Buffer.java:499)
[dx] at java.nio.HeapByteBuffer.putShort(HeapByteBuffer.java:296)
[dx] at com.android.dex.Dex$Section.writeShort(Dex.java:818)
[dx] at com.android.dex.Dex$Section.writeTypeList(Dex.java:870)
[dx] at com.android.dx.merge.DexMerger$3.write(DexMerger.java:437)
[dx] at com.android.dx.merge.DexMerger$3.write(DexMerger.java:423)
[dx] at com.android.dx.merge.DexMerger$IdMerger.mergeUnsorted(DexMerger.java:317)
[dx] at com.android.dx.merge.DexMerger.mergeTypeLists(DexMerger.java:423)
[dx] at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:163)
[dx] at com.android.dx.merge.DexMerger.merge(DexMerger.java:187)
[dx] at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:439)
[dx] at com.android.dx.command.dexer.Main.runMonoDex(Main.java:287)
[dx] at com.android.dx.command.dexer.Main.run(Main.java:230)
[dx] at com.android.dx.command.dexer.Main.main(Main.java:199)
[dx] at com.android.dx.command.Main.main(Main.java:103)
BUILD FAILED
C:\Users\Jaap\android-sdks\tools\ant\build.xml:892: The following error occurred while executing this line:
C:\Users\Jaap\android-sdks\tools\ant\build.xml:894: The following error occurred while executing this line:
C:\Users\Jaap\android-sdks\tools\ant\build.xml:906: The following error occurred while executing this line:
C:\Users\Jaap\android-sdks\tools\ant\build.xml:284: null returned: 2
Eclipseを使用する場合、メッセージは短くなりますが、似たようなものです。
[2013-11-01 14:29:44] APK file is not created for Project:
[2013-11-01 14:29:46 - Dex Loader] Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
[2013-11-01 14:29:46 - MyProject] Conversion to Dalvik format failed: Unable to execute dex: java.nio.BufferOverflowException. Check the Eclipse log for stack trace.
先ほども言いましたが、私のMacBookでは、どちらもAndroid Buildツールの最新版にアップグレードしているにもかかわらず、この問題は発生していません。19.0.0.
解決方法は?
ビルドツールを18.1.1へダウングレードする必要はありません。
1
は、この問題は
ビルドツール 19.0.1 で修正されました。
.
もし、何らかの理由で19.0.1が使えないのであれば。
の値を確認してください。
android:targetSdkVersion
で
AndroidManifest.xml
マッチ
target=android-<value>
で
プロジェクト・プロパティ
. この2つの値が同じでない場合、ビルドツールバージョン 19.0.0 でビルドすると BufferOverflowException で終了します。
ソース
また、この投稿へのコメントから、少なくとも19(android-19)をターゲットにする必要があることが示唆されています。ターゲットが19の場合にもこの解決策が有効かどうか、コメントを残してください。
修正方法はこのようになります。 を私のプロジェクトで使用しました。 関連するAOSPの問題は#61710です。
1 どうしてもダウングレードが必要な場合は、ビルドツール 19.0.0 をアンインストールする必要はなく、単に 18.1.1 をインストールして
sdk.buildtools=18.1.1
を
local.properties
ファイルを作成します。
関連
-
NetworkOnMainThreadException
-
Android のパッケージングに失敗し、Android リソースのリンクに失敗したことを示すプロンプトが表示される
-
android:EMSのプロパティ
-
Android Nで報告されたエラーを解決する: android.os.FileUriExposedException: file:///storage/emulated/0/
-
Android カスタムスピナーコントロールのドロップダウン・ボックスの実装
-
Android基本アプレット
-
Androidのカラーグラデーション実装のまとめ
-
アンドロイドスタジオソフトウェア使用詳細説明書
-
[解決済み] Androidのソフトキーボードをプログラムで閉じる/隠すにはどうすればよいですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Android Studio を 3.6.3 にアップデートした後、構成 :classpath のアーティファクトをすべて解決できない。
-
AndroidStudio3.0 Error:Execution failed for task ':app:processDebugResources'.
-
RuntimeException: アクティビティを開始できません ComponentInfo solution
-
Android studioのインストールと問題発生、Emulator: PANIC: AVDのシステムパスが見つかりません。
-
指定された子にはすでに親がいます。まず、その子の親に対して removeView() をコールする必要があります。
-
WeChatとQQは、他のアプリのオープンリストに自分のアプリを追加し、ファイルパスを取得することができます
-
SpinnerのOnItemSelectedListenerのonItemSelectedメソッドの4つのパラメーターの意味
-
アンドロイドスタジオ学習入門
-
アプリの実行エラー。ターゲットデバイスが見つからない問題
-
Android studio 制約レイアウト ConstraintLayout