0

このトピックについて多くの質問と回答があることは知っていますが、この非常に奇妙なエラーの多くの説明のいずれにも見つけることができない非常に奇妙な動作があります。

画面のパスングをあるアクティビティから別のアクティビティに回転させると、アプリでランダムにエラーが発生し、新しく作成されたアクティビティの行で発生します。

layout.setBackgroundResource(R.drawable.background);

素敵で重い jpeg の背景と、シンプルで明るいモノカラーの背景を試してみましたが、結果は同じです。

2 つのアクティビティを切り替えるボタンを備えたシンプルなアプリを作成しようとしましたが、エラーを再現できません。

問題のある行の前にブレークポイントを設定しようとしましたが、アプリが機能するのを待っているかのように、問題はありません。

メソッドを使用してビットマップをロードすることはありません。何が起こっているのかわかりません。

ご協力いただきありがとうございます。役立つ情報を追加できると思われる場合はお知らせください。できることはすべて追加しました。これで十分だと思います。

これは logCat の出力です。

10-01 16:31:16.750: E/ACRA(12765): com.controller fatal error : Unable to start activity ComponentInfo{com.controller/pages.RicercaAllarmiPage}: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
10-01 16:31:16.750: E/ACRA(12765): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.controller/pages.RicercaAllarmiPage}: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
10-01 16:31:16.750: E/ACRA(12765):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1659)
10-01 16:31:16.750: E/ACRA(12765):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1675)
10-01 16:31:16.750: E/ACRA(12765):  at android.app.ActivityThread.access$1500(ActivityThread.java:121)
10-01 16:31:16.750: E/ACRA(12765):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:943)
10-01 16:31:16.750: E/ACRA(12765):  at android.os.Handler.dispatchMessage(Handler.java:99)
10-01 16:31:16.750: E/ACRA(12765):  at android.os.Looper.loop(Looper.java:130)
10-01 16:31:16.750: E/ACRA(12765):  at android.app.ActivityThread.main(ActivityThread.java:3770)
10-01 16:31:16.750: E/ACRA(12765):  at java.lang.reflect.Method.invokeNative(Native Method)
10-01 16:31:16.750: E/ACRA(12765):  at java.lang.reflect.Method.invoke(Method.java:507)
10-01 16:31:16.750: E/ACRA(12765):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
10-01 16:31:16.750: E/ACRA(12765):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:670)
10-01 16:31:16.750: E/ACRA(12765):  at dalvik.system.NativeStart.main(Native Method)
10-01 16:31:16.750: E/ACRA(12765): Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>
10-01 16:31:16.750: E/ACRA(12765):  at android.view.LayoutInflater.createView(LayoutInflater.java:518)
10-01 16:31:16.750: E/ACRA(12765):  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
10-01 16:31:16.750: E/ACRA(12765):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:568)
10-01 16:31:16.750: E/ACRA(12765):  at android.view.LayoutInflater.inflate(LayoutInflater.java:386)
10-01 16:31:16.750: E/ACRA(12765):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
10-01 16:31:16.750: E/ACRA(12765):  at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
10-01 16:31:16.750: E/ACRA(12765):  at pages.RicercaAllarmiPage.drawRicercaAllarmi(RicercaAllarmiPage.java:112)
10-01 16:31:16.750: E/ACRA(12765):  at pages.RicercaAllarmiPage.onCreate(RicercaAllarmiPage.java:94)
10-01 16:31:16.750: E/ACRA(12765):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1050)
10-01 16:31:16.750: E/ACRA(12765):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1623)
10-01 16:31:16.750: E/ACRA(12765):  ... 11 more
10-01 16:31:16.750: E/ACRA(12765): Caused by: java.lang.reflect.InvocationTargetException
10-01 16:31:16.750: E/ACRA(12765):  at java.lang.reflect.Constructor.constructNative(Native Method)
10-01 16:31:16.750: E/ACRA(12765):  at java.lang.reflect.Constructor.newInstance(Constructor.java:415)
10-01 16:31:16.750: E/ACRA(12765):  at android.view.LayoutInflater.createView(LayoutInflater.java:505)
10-01 16:31:16.750: E/ACRA(12765):  ... 20 more
10-01 16:31:16.750: E/ACRA(12765): Caused by: java.lang.OutOfMemoryError: bitmap size exceeds VM budget
10-01 16:31:16.750: E/ACRA(12765):  at android.graphics.Bitmap.nativeCreate(Native Method)
10-01 16:31:16.750: E/ACRA(12765):  at android.graphics.Bitmap.createBitmap(Bitmap.java:477)
10-01 16:31:16.750: E/ACRA(12765):  at android.graphics.Bitmap.createBitmap(Bitmap.java:444)
10-01 16:31:16.750: E/ACRA(12765):  at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:349)
10-01 16:31:16.750: E/ACRA(12765):  at android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:588)
10-01 16:31:16.750: E/ACRA(12765):  at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:563)
10-01 16:31:16.750: E/ACRA(12765):  at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:426)
10-01 16:31:16.750: E/ACRA(12765):  at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:697)
10-01 16:31:16.750: E/ACRA(12765):  at android.content.res.Resources.loadDrawable(Resources.java:1981)
10-01 16:31:16.750: E/ACRA(12765):  at android.content.res.TypedArray.getDrawable(TypedArray.java:653)
10-01 16:31:16.750: E/ACRA(12765):  at android.view.View.<init>(View.java:1992)
10-01 16:31:16.750: E/ACRA(12765):  at android.view.View.<init>(View.java:1940)
10-01 16:31:16.750: E/ACRA(12765):  at android.view.ViewGroup.<init>(ViewGroup.java:286)
10-01 16:31:16.750: E/ACRA(12765):  at android.widget.LinearLayout.<init>(LinearLayout.java:120)
10-01 16:31:16.750: E/ACRA(12765):  ... 23 more
4

1 に答える 1

0

Android でビットマップを処理することは非常に大きな問題です。あなたの場合、バックグラウンド リソースを設定すると、最終的には内部的にビットマップのみになります。したがって、私の提案は次のようになります。

  1. Drawable を適切なサイズに縮小します
  2. 複数画面のサポートをフォローする
于 2013-10-02T10:04:50.213 に答える