gpt4 book ai didi

java - android.view.InflateException : Binary XML , 和 OutOfMemoryError?

转载 作者:行者123 更新时间:2023-12-02 00:36:45 33 4
gpt4 key购买 nike

我使用了近 90 个非常大的图像,并且我使用延迟加载在图库和 GridView 中显示这些图像。因此加载图像后,如果单击任何按钮,则会出现内存不足(oom)错误,有时它会给出 Xml 二进制膨胀异常。

我正在使用非常大的图像,等于平板电脑大小的图像,我的apk大小是25MB,并且我正在使用具有多个FrameLayout的单个 Activity ,但在加载新 View 之前我正在删除当前 View ,但问题仍然存在,我不知道为什么会发生?它给出了 oom 错误,但没有给出错误的确切位置,并且给出了随机位置的错误,并且错误频繁出现。

09-30 15:23:07.490: ERROR/AndroidRuntime(5527): FATAL EXCEPTION: main
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): android.view.InflateException: Binary XML file line #13: Error inflating class <unknown>
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.view.LayoutInflater.createView(LayoutInflater.java:596)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:644)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:669)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.view.LayoutInflater.rInflate(LayoutInflater.java:724)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.view.LayoutInflater.inflate(LayoutInflater.java:391)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at com.maheshbabu.app.JustIn.initialize(JustIn.java:143)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at com.maheshbabu.app.JustIn.<init>(JustIn.java:135)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at com.maheshbabu.app.MaheshBabuHomePage.showLatestPage(MaheshBabuHomePage.java:671)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at com.maheshbabu.app.MaheshBabuHomePage.onClick(MaheshBabuHomePage.java:363)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.view.View.performClick(View.java:3110)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.view.View$PerformClick.run(View.java:11934)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.os.Handler.handleCallback(Handler.java:587)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.os.Handler.dispatchMessage(Handler.java:92)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.os.Looper.loop(Looper.java:132)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.app.ActivityThread.main(ActivityThread.java:4123)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at java.lang.reflect.Method.invokeNative(Native Method)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at java.lang.reflect.Method.invoke(Method.java:491)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at dalvik.system.NativeStart.main(Native Method)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): Caused by: java.lang.reflect.InvocationTargetException
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at java.lang.reflect.Constructor.constructNative(Native Method)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at java.lang.reflect.Constructor.newInstance(Constructor.java:416)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.view.LayoutInflater.createView(LayoutInflater.java:576)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): ... 21 more
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): Caused by: java.lang.OutOfMemoryError
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:483)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:351)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:738)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.content.res.Resources.loadDrawable(Resources.java:1918)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.view.View.<init>(View.java:2450)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.view.View.<init>(View.java:2389)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.view.ViewGroup.<init>(ViewGroup.java:359)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): at android.widget.RelativeLayout.<init>(RelativeLayout.java:173)
09-30 15:23:07.490: ERROR/AndroidRuntime(5527): ... 24 more

最佳答案

我认为这个异常来自

setContentView(R.layout.main);

这可能是由于各种原因造成的。

1) 因为您要将屏幕方向从纵向更改为横向,反之亦然

Sol) 将您的 View 固定到任意一个方向。实际上,在方向改变时,新 View 和新对象是与旧 View 和对象一起创建的。从而夺走你的内存

2) 对象没有被释放

sol)删除 View 并不能解决您的问题,您必须释放与这些 View 相关的所有对象。对与这些 View 相关的每个图像调用 Bitmap.recycle()。

另请查看这些可能对您有帮助的链接

How to get rid of out of memory exception

观看这个视频,它可能对您非常有用

Memory management for Android Apps

祝 friend 编码愉快

关于java - android.view.InflateException : Binary XML <Unknown>, 和 OutOfMemoryError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7608966/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com