1. ホーム

[解決済み】Android StudioのGoogle JARファイルでGC overhead limit exceededエラーが発生する。

2022-04-09 04:49:24

質問

OS XでAndroid Studioを使用していますが、次のようなエラーメッセージが表示されます。

FAILURE: ビルドに例外が発生し、失敗しました。

  • 何が問題だったのでしょうか。 タスク ':app:preDexDebug' の実行に失敗しました。 com.android.ide.common.internal.LoggedErrorException: コマンドの実行に失敗しました。 /Applications/Android Studio.app/sdk/build-tools/android-4.4W/dx --dex --output /Users/alex/AndroidStudioProjects/SilentSMS/app/build/intermediates/pre-dexed/debug/android-4.4W/dx --dex --output /AndroidStudioProjects/SilentSMS/app/build/intermediates/pre-dexed/Debug/android-4.4W/Dx --dex --output 3_r2.1-f22bbff4d1017230e169a4844a9c2195f13060d2.jar /Users/alex/AndroidStudioProjects/SilentSMS/app/libs/android-4.3_r2.1.jar

    エラーコードです。 3 出力してください。

  UNEXPECTED TOP-LEVEL ERROR:
  java.lang.OutOfMemoryError: GC overhead limit exceeded
      at com.android.dx.cf.code.RopperMachine.getSources(RopperMachine.java:665)
      at com.android.dx.cf.code.RopperMachine.run(RopperMachine.java:288)
      at com.android.dx.cf.code.Simulator$SimVisitor.visitLocal(Simulator.java:612)
      at com.android.dx.cf.code.BytecodeArray.parseInstruction(BytecodeArray.java:412)
      at com.android.dx.cf.code.Simulator.simulate(Simulator.java:94)
      at com.android.dx.cf.code.Ropper.processBlock(Ropper.java:782)
      at com.android.dx.cf.code.Ropper.doit(Ropper.java:737)
      at com.android.dx.cf.code.Ropper.convert(Ropper.java:346)
      at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:282)
      at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:139)
      at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:94)
      at com.android.dx.command.dexer.Main.processClass(Main.java:682)
      at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
      at com.android.dx.command.dexer.Main.access$600(Main.java:78)
      at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)
      at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
      at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
      at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
      at com.android.dx.command.dexer.Main.processOne(Main.java:596)
      at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
      at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
      at com.android.dx.command.dexer.Main.run(Main.java:230)
      at com.android.dx.command.dexer.Main.main(Main.java:199)
      at com.android.dx.command.Main.main(Main.java:103)

私はこのライブラリを使用しています。

http://grepcode.com/snapshot/repository.grepcode.com/java/ext/com.google.android/android/4.3_r2.1/

私はJARファイルを引っ張ってきて、私のプロジェクトに追加しました - 私がビルドしようとしているプロジェクトは、です。

https://github.com/domi007/silentSMS/

xmsとxmxの値が低すぎるのが原因だと理解しています。で増やしました。

/Applications/Android Studio.app/bin/idea.vmoptions と表示されるようになりました。

-Xms256m
-Xmx1024m

しかし、まだエラーが出ます。これは何が原因なのでしょうか?silentSMSアプリがEclipseプロジェクトであることと、私がコードをAndroid Studioに移植したことを除けば、私は何も変えていません。Android Studioがエラーを発見するという点では、それはありませんし、他のすべてがうまくいっているように見えます。

どのように解決するのですか?

デキシング操作のヒープ制限を上げる方法は別にあると思うのですが。これをあなたの android クロージャを build.gradle ファイルを作成します。

dexOptions {
    javaMaxHeapSize "4g"
}

をクリックして、それが役に立つかどうか見てみましょう。

(アイデア提供 Scott Barta氏からの回答 )