私は、1つのアクティビティが非常に複雑なコードであり、webview (sdcardのhtmlファイルと画像を使用)、imageviews、scrollsなどの単一のレイアウトでさまざまなビューが膨らんでいるアプリに取り組んでいます。このアクティビティを開始すると、これらのエラーが発生します。
E/AndroidRuntime(600): Caused by: java.lang.reflect.InvocationTargetException
E/AndroidRuntime(600): at java.lang.reflect.Constructor.constructNative(Native Method)
E/AndroidRuntime(600): at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
E/AndroidRuntime(600): at android.view.LayoutInflater.createView(LayoutInflater.java:586)
E/AndroidRuntime(600): ... 29 more
E/AndroidRuntime(600): Caused by: java.lang.OutOfMemoryError
E/AndroidRuntime(600): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
E/AndroidRuntime(600): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:483)
E/AndroidRuntime(600): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:351)
E/AndroidRuntime(600): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:773)
E/AndroidRuntime(600): at android.content.res.Resources.loadDrawable(Resources.java:1935)
E/AndroidRuntime(600): at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
E/AndroidRuntime(600): at android.view.View.<init>(View.java:2785)
E/AndroidRuntime(600): at android.view.View.<init>(View.java:2722)
E/AndroidRuntime(600): at android.view.ViewGroup.<init>(ViewGroup.java:379)
E/AndroidRuntime(600): at android.widget.RelativeLayout.<init>(RelativeLayout.java:174)
E/AndroidRuntime(600): ... 32 more
この問題を解決する方法私はこのコードを試しましたが、それでも何をすべきかわかりませんか?
@Override
protected void onDestroy() {
super.onDestroy();
unbindDrawables(findViewById(R.id.rootView));
System.gc();
}
private void unbindDrawables(View view) {
if (view.getBackground() != null) {
view.getBackground().setCallback(null);
}
if (view instanceof ViewGroup) {
for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
unbindDrawables(((ViewGroup) view).getChildAt(i));
}
((ViewGroup) view).removeAllViews();
}
}
この問題を解決するための可能な方法は何ですか?助けてください