私は自分の Android アプリケーションに a を含むレイアウトを持っています(これはaMapView
内にあり、画面全体ではありません)。ViewSwitcher
RelativeLayout
私の問題は、アイテムのタップが非常に遅く、数回タップするとjava.lang.OutOfMemoryError
(デバイスとエミュレータの両方で)トリガーされることです。
07-19 15:39:29.839: E/dalvikvm-heap(14832): 86400-byte external allocation too large for this process.
07-19 15:39:29.839: E/GraphicsJNI(14832): VM won't let us allocate 86400 bytes
07-19 15:39:29.889: I/dalvikvm-heap(14832): Clamp target GC heap from 32.934MB to 32.000MB
07-19 15:39:29.889: D/dalvikvm(14832): GC_FOR_MALLOC freed <1K, 29% free 8447K/11847K, external 20846K/21207K, paused 47ms
07-19 15:39:29.889: D/skia(14832): --- decoder->decode returned false
07-19 15:39:29.889: D/AndroidRuntime(14832): Shutting down VM
07-19 15:39:29.889: W/dalvikvm(14832): threadid=1: thread exiting with uncaught exception (group=0x2aac8578)
07-19 15:39:29.889: E/AndroidRuntime(14832): FATAL EXCEPTION: main
07-19 15:39:29.889: E/AndroidRuntime(14832): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:504)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:370)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:715)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.graphics.drawable.Drawable.createFromStream(Drawable.java:675)
07-19 15:39:29.889: E/AndroidRuntime(14832): at mypackage.widgets.LocalisationArrayAdapter.getView(LocalisationArrayAdapter.java:92)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.widget.AbsListView.obtainView(AbsListView.java:1498)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.widget.ListView.measureHeightOfChildren(ListView.java:1220)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.widget.ListView.onMeasure(ListView.java:1131)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.view.View.measure(View.java:8462)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3231)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.widget.FrameLayout.onMeasure(FrameLayout.java:254)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.view.View.measure(View.java:8462)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.widget.RelativeLayout.measureChild(RelativeLayout.java:566)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:381)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.view.View.measure(View.java:8462)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3231)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.widget.FrameLayout.onMeasure(FrameLayout.java:254)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.view.View.measure(View.java:8462)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.widget.LinearLayout.measureVertical(LinearLayout.java:535)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.widget.LinearLayout.onMeasure(LinearLayout.java:313)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.view.View.measure(View.java:8462)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3231)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.widget.FrameLayout.onMeasure(FrameLayout.java:254)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.view.View.measure(View.java:8462)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.view.ViewRoot.performTraversals(ViewRoot.java:861)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.view.ViewRoot.handleMessage(ViewRoot.java:1882)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.os.Handler.dispatchMessage(Handler.java:99)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.os.Looper.loop(Looper.java:130)
07-19 15:39:29.889: E/AndroidRuntime(14832): at android.app.ActivityThread.main(ActivityThread.java:3701)
07-19 15:39:29.889: E/AndroidRuntime(14832): at java.lang.reflect.Method.invokeNative(Native Method)
07-19 15:39:29.889: E/AndroidRuntime(14832): at java.lang.reflect.Method.invoke(Method.java:507)
07-19 15:39:29.889: E/AndroidRuntime(14832): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
07-19 15:39:29.889: E/AndroidRuntime(14832): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:624)
07-19 15:39:29.889: E/AndroidRuntime(14832): at dalvik.system.NativeStart.main(Native Method)
だから私の質問は:このエラーの原因は何ですか?
これはフルスクリーンではありません
MapView
か?私はこの投稿の解決策に従いました: android MapView は常にネストされた要素で OutOfMemoryError を引き起こしますが、何もしませんでした。
とその他の子( a )の
ViewSwitcher
両方がメモリ内にあるためですか?MapView
ListView
もしそうなら、どうすればアンドロイドに各ビューを再描画させることができ
showNext()
ますか?
の代わりに 2 つの異なるアクティビティがあり、 がレイアウト全体を取得したViewSwitcher
ときは問題なく動作しました。MapView