2011-08-16 23 views
5

「スレッド内の例外」メイン「java.lang.OutOfMemoryError:Java heap space」 -vmargs -Xmx1024Mを追加しても、Androidアプリケーションをビルドするときにエラーが発生することはありますか? Eclipseの引数に-Xms512M? ビルド時にこのようなエラーが発生する可能性があることを知りたいのですが、EclipseやMavenのバグだけがビルド時にこのようなエラーを生成する可能性があります。 私はアプリケーションをビルドするためにmaven installを実行しています(maven android eclipseプラグインを使用)。 Run as-> 'maven package'も約1分30秒待ってから同じビルドエラーを生成します。 私は3GBのメモリを搭載したデスクトップコンピュータを所有しており、私のアプリケーションはそれほど大きくはありません。javaヒープスペース

ありがとうございました。

+0

アプリでビットマップ関数を使用していますか? –

+0

はい彼は私です – Moussa

答えて

8

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/some/pathをjvm argsに追加すると、メモリが不足するとヒープがダンプされます。 Eclipse Memory Analyserまたはjhatを使用してヒープをブラウズし、問題のある場所を診断できます。

更新:あなたのMavenアンドロイドプラグインのメモリを増やしてみてください。あなたのpom.xmlでは、プラグインの設定にXmxためのJVM引数を追加します。

<plugin> 
    <artifactId>maven-android-plugin</artifactId> 
    <configuration> 
    <jvmArguments> 
     <argument>-Xmx1500m</argument> 
    </jvmArguments> 
    </configuration> 
</plugin> 
+0

私はひどくダンプすることはできません。これらの引数は、以下のように、eclipseの「実行コンフィギュレーション」の「VM引数」テキストボックスと同じ場所に挿入されるはずです:-Xms1024M -Xmx1024M -XX:+ HeapDumpOnOutOfMemoryError -XX:HeapDumpPath = "C:"? – John156

+0

@ John156プラグインのメモリを増やすことで私の更新を参照してください – dogbane

+0

ああ私の神はあなたにそんなに感謝します!私はこれを数日間修正しようとしてきました。別のjvmsを使用する理由と、呼び出しプロセス(eclipse、jre、...)の引数が子プロセスに自動的に設定されないのはなぜですか? – John156

2

あなたのEclipseのJVM引数は関係ありません。コンパイラのヒープを増やす必要があります。

増加が、私はあなたが書いたクラスごとの行数を確認することをあなたにお勧めします応答しない場合、私はhttp://javahowto.blogspot.com/2006/06/fix-javac-java-lang-outofmemoryerror.html

If [...] you're running Eclipse, go into your "run As" dialog for your Build.xml and add -Xms256m -Xmx256m to the "VM Arguments" text box

+0

これはとても賢いので、しばらくの間、私の問題を解決することができました。私はEclipseのJVMがコンパイラのJVMと異なることを知らなかった。私たちは、実行矢印をクリックして設定を実行し、実行コンフィギュレーションを選択してからJREタブに移動し、「VM引数」の空白のテキストボックスに「-Xms1024M - Xmx1024M 'を入力し、適用して実行してください。 これは残念ながらうまくいきませんでしたが、問題は同じです。 – John156

+0

ええ、私は今あなたがMavenのAndroidプラグインとEclipse統合を使用していることを認識しています。つまり、Eclipseコンパイラの設定は問題ではなく、プラグインの設定とは関係ありません。 –

0

を引用しています。オブジェクトの数が多い場合は、コンパイラの問題になる可能性があります。そのため、メソッドの分割や新しいクラスへのコピーは、1つ以上のクラスに3000以上の行がある場合に実行してください。

1

Dalvik形式への変換に失敗しました:dex:Javaヒープ領域を実行できません。 eclipse.iniファイル内のすべての値を増やすことは役に立ちませんでした。これは私がADTプラグインを12から16にアップグレードした後に起こったことです。私はアップグレードの前に既存のプロジェクトに指摘されていたAndroid SDKを変更しました(以前のADTで接続されたアンドロイドSDKからアンドロイドSDK私の新しいadtに接続されていた)それは私のために問題を解決しました。お役に立てれば。それが誰かを助けるならプラス1に投票してください。

関連する問題