Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android viewflipper不适用于4.0_Android_Android Layout - Fatal编程技术网

Android viewflipper不适用于4.0

Android viewflipper不适用于4.0,android,android-layout,Android,Android Layout,我开发了一个在android 2.1版本上运行良好的应用程序,但当我在android 4.0版本上启动它时,它不会运行,并抛出如下堆栈跟踪: 09-26 19:45:10.961: E/AndroidRuntime(785): FATAL EXCEPTION: main 09-26 19:45:10.961: E/AndroidRuntime(785): java.lang.OutOfMemoryError 09-26 19:45:10.961: E/AndroidRuntime(785):

我开发了一个在android 2.1版本上运行良好的应用程序,但当我在android 4.0版本上启动它时,它不会运行,并抛出如下堆栈跟踪:


09-26 19:45:10.961: E/AndroidRuntime(785): FATAL EXCEPTION: main
09-26 19:45:10.961: E/AndroidRuntime(785): java.lang.OutOfMemoryError
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.graphics.Bitmap.nativeCreate(Native Method)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.graphics.Bitmap.createBitmap(Bitmap.java:605)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.graphics.Bitmap.createBitmap(Bitmap.java:551)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:437)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:524)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:499)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:351)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:773)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.content.res.Resources.loadDrawable(Resources.java:1937)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.content.res.Resources.getDrawable(Resources.java:664)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.widget.ImageView.resolveUri(ImageView.java:542)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.widget.ImageView.setImageResource(ImageView.java:315)
09-26 19:45:10.961: E/AndroidRuntime(785):  at com.deedatech.AnimalsNameForKids.AnimalsNameForKidsActivity.onCreate(AnimalsNameForKidsActivity.java:85)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.app.Activity.performCreate(Activity.java:4465)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1919)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.app.ActivityThread.access$600(ActivityThread.java:122)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.os.Handler.dispatchMessage(Handler.java:99)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.os.Looper.loop(Looper.java:137)
09-26 19:45:10.961: E/AndroidRuntime(785):  at android.app.ActivityThread.main(ActivityThread.java:4340)
09-26 19:45:10.961: E/AndroidRuntime(785):  at java.lang.reflect.Method.invokeNative(Native Method)
09-26 19:45:10.961: E/AndroidRuntime(785):  at java.lang.reflect.Method.invoke(Method.java:511)
09-26 19:45:10.961: E/AndroidRuntime(785):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
09-26 19:45:10.961: E/AndroidRuntime(785):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
09-26 19:45:10.961: E/AndroidRuntime(785):  at dalvik.system.NativeStart.main(Native   Method)

我只是不明白为什么会发生这种情况,因为同一个程序在android 2.1版本上运行得很完美,但在4.0版本上抛出了
outOfMemoryError
。如果您有什么想法,请提供帮助。

如果您正在从UI线程解码位图,则可能会出现OutOfMemory错误。尝试将解码流更改为asynTask

与Anis所说的相反,在不同的线程上解码位图不会帮助您避免内存不足(OOM)错误,您仍然在向应用程序加载完全相同的数据量


您需要减小正在加载的图像的大小,或者减少对图像的采样,这样您就不会加载所有的数据。有关这方面的更多信息,请查看。

但是如果这是问题所在,那么为什么android 2.1版上不显示它呢。请帮助我。android.graphics.Bitmap.nativeCreate本机方法的内部实现已更改,可能在4.0上需要更多内存。但如果这是问题所在,那么为什么在android 2.1版本上不显示它。请帮助我。因为操作系统不同,所以可用内存量可能不一样。此外,设备可能不同。