6

java.lang.OutOfMemoryErrorビットマップを使用して大きな画像を表示するときに取得します。
ビットマップのサイズを変更するには、次のリンク「ビットマップの保存」と「BitmapFactory.decodeFile」を参照しました。

私のlogcatは次のとおりです。

FATAL EXCEPTION: main
java.lang.OutOfMemoryError
    at     android.graphics.Bitmap.nativeCreate(Native Method)
    at     android.graphics.Bitmap.createBitmap(Bitmap.java:604)
    at     android.graphics.Bitmap.createBitmap(Bitmap.java:551)
    at     com.android.restaurant.DescriptionPage.getResizedBitmap(DescriptionPage.java:327)
    at         com.android.restaurant.DescriptionPage.setDetailsIntoLayout(DescriptionPage.java:172)
    at com.android.restaurant.DescriptionPage.onCreate(DescriptionPage.java:101)
    at android.app.Activity.performCreate(Activity.java:4397)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1782)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1834)
    at android.app.ActivityThread.access$500(ActivityThread.java:125)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1027)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:132)
    at android.app.ActivityThread.main(ActivityThread.java:4135)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:491)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
    at dalvik.system.NativeStart.main(Native Method)
4

2 に答える 2

5

コードを投稿していないため、改善できるバグやおそらく効果のないコードがあるかどうかを知るのは困難です。

ただし、一般的に JVM メモリは限られているため、大きなイメージをロードするとOutOfMemoryError. オプションを使用して JVM メモリを増やすことができ-Xmxます。これが最初で最も簡単な方法です。

他の方法は、画像を減らすことです (可能な場合)。または、おそらく BMP 以外の形式 (JPG など) を使用してください。これにより、高品質が保証され、必要なメモリが少なくなります。

于 2012-04-16T06:14:56.843 に答える
0

モバイル アプリケーションの開発における課題は、メモリが限られていることです。

最初に心に残ったのは、BitMaps の代わりに PNG(Portable Network Graphics) を (可能であれば) 使用することです。

それとは別に、これは既存の問題のようです。これを確認してください:- http://code.google.com/p/android/issues/detail?id=8488

于 2012-04-16T06:32:27.880 に答える