0

周りのいくつかの記事を調べたところ、アプリの終了時にonDestroy()が呼び出されないことがあります。onPause()のみが呼び出される場合があります。私の全体的なことは、戻るボタンまたはfinish()関数を使用してアプリを終了すると、すべてが正常に見えるということです。アプリを再度開こうとすると、次のように表示されます。

12-14 04:09:59.457: E/GraphicsJNI(996): VM won't let us allocate 3279360 bytes

ログ全体も貼り付けます。それが再び開くとき、それは強制的に閉じます。その後、再び開くことができます。たとえば、Eclipseで再構築してエミュレーターで実行すると、正常に動作します。しかし、アプリ内で閉じてから再度開こうとすると、このメモリの問題が発生します。何が解決されていないのかわかりません。解決策があるか、少なくともこれを解決するための正しい方向を示してくれることを願っています。これは本当に頭痛の種です。あなたたちがより多くの情報を必要とするならば、私に知らせてください。ありがとう。

12-14 04:09:59.457: E/GraphicsJNI(996): VM won't let us allocate 3279360 bytes
12-14 04:09:59.606: D/AndroidRuntime(996): Shutting down VM
12-14 04:09:59.646: W/dalvikvm(996): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
12-14 04:09:59.856: E/AndroidRuntime(996): FATAL EXCEPTION: main
12-14 04:09:59.856: E/AndroidRuntime(996): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.ShotSlot/com.ShotSlot.ShotSlotActivity}: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.os.Handler.dispatchMessage(Handler.java:99)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.os.Looper.loop(Looper.java:123)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.app.ActivityThread.main(ActivityThread.java:4627)
12-14 04:09:59.856: E/AndroidRuntime(996):  at java.lang.reflect.Method.invokeNative(Native Method)
12-14 04:09:59.856: E/AndroidRuntime(996):  at java.lang.reflect.Method.invoke(Method.java:521)
12-14 04:09:59.856: E/AndroidRuntime(996):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
12-14 04:09:59.856: E/AndroidRuntime(996):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
12-14 04:09:59.856: E/AndroidRuntime(996):  at dalvik.system.NativeStart.main(Native Method)
12-14 04:09:59.856: E/AndroidRuntime(996): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.view.LayoutInflater.createView(LayoutInflater.java:513)
12-14 04:09:59.856: E/AndroidRuntime(996):  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:563)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.view.LayoutInflater.inflate(LayoutInflater.java:385)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
12-14 04:09:59.856: E/AndroidRuntime(996):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.app.Activity.setContentView(Activity.java:1647)
12-14 04:09:59.856: E/AndroidRuntime(996):  at com.ShotSlot.ShotSlotActivity.onCreate(ShotSlotActivity.java:161)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
12-14 04:09:59.856: E/AndroidRuntime(996):  ... 11 more
12-14 04:09:59.856: E/AndroidRuntime(996): Caused by: java.lang.reflect.InvocationTargetException
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.widget.RelativeLayout.<init>(RelativeLayout.java:170)
12-14 04:09:59.856: E/AndroidRuntime(996):  at java.lang.reflect.Constructor.constructNative(Native Method)
12-14 04:09:59.856: E/AndroidRuntime(996):  at java.lang.reflect.Constructor.newInstance(Constructor.java:446)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.view.LayoutInflater.createView(LayoutInflater.java:500)
12-14 04:09:59.856: E/AndroidRuntime(996):  ... 21 more
12-14 04:09:59.856: E/AndroidRuntime(996): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.graphics.Bitmap.nativeCreate(Native Method)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.graphics.Bitmap.createBitmap(Bitmap.java:468)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.graphics.Bitmap.createBitmap(Bitmap.java:435)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:340)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:488)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:462)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:323)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.content.res.Resources.loadDrawable(Resources.java:1709)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.view.View.<init>(View.java:1885)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.view.View.<init>(View.java:1834)
12-14 04:09:59.856: E/AndroidRuntime(996):  at android.view.ViewGroup.<init>(ViewGroup.java:285)
12-14 04:09:59.856: E/AndroidRuntime(996):  ... 25 more
4

1 に答える 1

0

DDMS を調べてみてください。メモリ割り当てを示す [ヒープ] タブがあります。

ウィンドウ > パースペクティブを開く > その他...

次に、DDMS を選択します。

編集

私のアプリの 1 つで、これを Quit ボタンに設定すると、バックスタックがクリアされ、アプリの最初のアクティビティが開始されます。Main.class を最初のアクティビティ名に置き換えるだけです。次に、戻るボタンを押すと、アプリが終了します

        Intent intent = new Intent(this, MainMenu.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        startActivity(intent);
于 2011-12-14T05:01:44.017 に答える