2012-02-20 5 views
9

デベロッパーコンソールで次のスタックトレースを取得しています。報告書の中には、「アプリケーションが起動しない」または「起動時にクラッシュする」との報告があります。Androidデベロッパーコンソールの不思議なスタックトレース(ビットマップサイズが32ビットを超えています)

私は何をすべきか分かりませんが、私のアプリのクラスでは何も言及していません!誰もが同じエラーを得て、修正を見つけましたか?

java.lang.IllegalArgumentException: bitmap size exceeds 32bits 
at android.graphics.Bitmap.nativeCreate(Native Method) 
at android.graphics.Bitmap.createBitmap(Bitmap.java:695) 
at android.view.View.buildDrawingCache(View.java:6646) 
at android.view.ViewGroup.onAnimationStart(ViewGroup.java:1345) 
at android.view.ViewGroup.drawChild(ViewGroup.java:1591) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459) 
at android.view.View.draw(View.java:6996) 
at android.widget.FrameLayout.draw(FrameLayout.java:357) 
at android.view.ViewGroup.drawChild(ViewGroup.java:1732) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459) 
at android.view.ViewGroup.drawChild(ViewGroup.java:1730) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459) 
at android.view.ViewGroup.drawChild(ViewGroup.java:1730) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1459) 
at android.view.View.draw(View.java:6996) 
at android.widget.FrameLayout.draw(FrameLayout.java:357) 
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2054) 
at android.view.ViewRoot.draw(ViewRoot.java:1632) 
at android.view.ViewRoot.performTraversals(ViewRoot.java:1335) 
at android.view.ViewRoot.handleMessage(ViewRoot.java:1991) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:150) 
at android.app.ActivityThread.main(ActivityThread.java:4358) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:507) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:849) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:607) 
at dalvik.system.NativeStart.main(Native Method) 
+1

にありましたあなたの範囲の "外側"のレイアウトに。とにかく、問題の原因となる画像があるように見えます。あまりにも多くの画像がない場合は、画像を1つずつ交換してみてください。デフォルトのアンドロイドアイコンをクリックして問題の原因となるアイコンを見つけます。 – harism

+0

私はウィジェットを開発していたときに同じ問題に直面していました。それは通常(Eclipseのbtwで)プロジェクトをクリーンアップしてから(プロジェクト - >クリーンメニュー)、プロジェクトを再表示してビルドし直して修復されました。しかし、なぜ誰かがそれが起こる正確な理由を知っているなら、それは素晴らしいだろうと私は間違いなく答えに投票するつもり! ;) –

答えて

5

数量の問題がある場合は、recycleビットマップにする必要があります。
サイズの問題がある場合(大きすぎる画像を読み込むことはできません)、ビットマップの軽量コピーを読み込む必要があります。

ここ> 1の値に小さい画像

Options thumbOpts = new Options(); 
thumbOpts.inSampleSize = 4; 
Bitmap bmp = BitmapFactory.decodeFile(imagePath, mThumbOpts); 

inSampleSizeセットを作成するためのコードは、メモリを節約するために小さい画像を戻す、元の画像をサブサンプリングするデコーダを要求します。
より効率的にするには、2の累乗を使用します。

This post

+2

これはうまく動作しません、それはサイズとは関係ありません、私の質問を参照してください:[ここ](http://stackoverflow.com/questions/15008386/android-bitmap-size-exceeds-32-bit-in- dialogfragment/15008630#15008630) – stefple

+1

これはどのようにして問題を解決しますか?質問に「ImageView」とビットマップの作成の兆候はありません! 'View.buildDrawingCache'が何らかの理由で大きすぎる画像を作成しています.... – TWiStErRob

1

Bitmap.createBitmap()

は、X、Y、幅、高さの値は、ソースビットマップの大きさの外にある場合IllegalArgumentException

をスロー、または有用であり得ます幅が< = 0、または高さが< = 0

最初に作成するsuあなたのx、y、幅と高さの値はソースビットマップよりも小さいです。

私の問題はマトリックスでした。私の行列には、入力ビットマップの範囲外の値の1つをもたらす変換値があります。

希望、これは私の場合、それは、この文字列でエラーだった

0

を支援します。

WebView.getSettings().setUseWideViewPort(true); 

クラッシュは、それは、関連するメインのアクティビティの負荷資源場合があり得る唯一のAPI 18と少ない

関連する問題