android - 处理: com.android.packageinstaller OutOfMemoryError

标签 android error-handling out-of-memory

我生成了我的应用APK文件。
现在,当我试图通过我的设备打开它时,我得到了:

5474-5474/? E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.android.packageinstaller, PID: 5474
    java.lang.OutOfMemoryError
            at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
            at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:587)
            at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:422)
            at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:840)
            at android.content.res.Resources.loadDrawable(Resources.java:2150)
            at android.content.res.Resources.getDrawable(Resources.java:715)
            at com.android.packageinstaller.PackageUtil.getAppSnippet(PackageUtil.java:181)
            at com.android.packageinstaller.InstallAppProgress.initView(InstallAppProgress.java:248)
            at com.android.packageinstaller.InstallAppProgress.onCreate(InstallAppProgress.java:182)
            at android.app.Activity.performCreate(Activity.java:5275)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2164)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2250)
            at android.app.ActivityThread.access$800(ActivityThread.java:139)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1200)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5105)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:608)
            at dalvik.system.NativeStart.main(Native Method)

请帮我...
我做错了什么?

最佳答案

Android为图像分配每个像素4个字节。此外,如果该图标处于可绘制状态,则android会分配更多资源以进行放大。

Android在安装应用程序时可以分配给图标多少内存也有限制。如果图标太大,则应用程序将耗尽内存。

解决方案-遵循图标设计准则here for adaptivehere for legacy。如果您不想陷入复杂的境地,只需减小图标大小即可运行您的应用程序。

关于android - 处理: com.android.packageinstaller OutOfMemoryError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27677427/

相关文章:

Android - 加密/保护 SD 卡内容

当 View 从纵向变为横向或反之时,Android 小部件停止工作

c# - 处理预期的异常

java - 在 Java 中处理大字符串时出现 StringBuilder 内存不足错误

performance - 高效的序列转换为字符串

android - 基于 firebase 的移动应用数据服务器设计

android - 使textView循环一个增长和收缩的动画

ruby - 自定义用于整数转换的异常消息-Ruby

php - Symfony Twig自定义错误页面导致错误

java - 一个平台上的 Java 中的 OutOfMemoryError,但另一个平台上没有