应用在某些设备上崩溃。Android Studio显示内存不足异常错误。

5
我正在创建一款音乐播放器应用程序。我有三个活动,其中包含可循环视图。我正在使用ExoPlayer从服务器加载音乐。我使用Glide将大小为20kb的10-20张图片加载到可循环视图中。我的应用在一些低内存手机上崩溃了。Android分析器显示我的应用程序消耗了过多的内存(如下所示的屏幕截图)。在高端手机上,应用程序运行非常顺畅。请问有人能告诉我如何解决这个内存问题,以便应用程序在所有手机上都可以平稳运行。
我已经在清单中添加了heaplarge=true。

enter image description here

enter image description here

Android Studio Profiler


将您的targetSDKVersion更改为23。这是我在面对类似情况时的解决方案。 - Mukeshkumar S
@WaleedAsim 我已经附上了 Gradle 的截图。 - Nabil Mohammed Nalakath
[请求] - Tim
它在更高的SDK模型中运行良好,根本不会出现这个异常吗? - Noel
是的,当我在一加5上运行时,它非常流畅。可能是因为它有足够的内存。 - Nabil Mohammed Nalakath
显示剩余2条评论
4个回答

1

也许你的应用程序存在内存泄漏问题。

  1. 您可以尝试使用leakCanary来查找一些Activity泄漏问题。

    链接到Github的leakCanary

  2. 您还可以使用链接来分析您的代码分析工具

  3. 尝试使用Android StrictMode,它可以帮助您改进您的代码Strict Mode


1
在 Android 部分的 build.gradle 中添加以下内容。
dexOptions {
        javaMaxHeapSize "4g" //specify the heap size for the dex process
    }

将此添加到默认配置部分。
multiDexEnabled true

最后添加依赖项:
compile 'com.android.support:multidex:1.0.2'

0

在Android中,有太多种方法可以解决内存不足的错误。

  1. 高效加载大型位图

了解如何使用最佳实践处理Android应用程序中的大型位图

  1. 使用TinyPNG

TinyPNG使用智能有损压缩技术来减小PNG文件的文件大小。通过选择性地减少图像中的颜色数量,需要存储数据的字节数就会减少。这种效果几乎是看不见的,但它在文件大小方面产生了非常大的差异!

使用此链接压缩所有图像。

在将图片用于Android应用程序之前,先减小所有图片的尺寸。

希望这可以帮助您。


-1
尝试添加android:largeHeap="true"。您可以在AndroidManifest.xml文件中使用此选项来加载大文件,但如果您要添加大量数据,则可以像其他用户所述的那样使用multidex
<application
        android:allowBackup="true"
        android:icon="@drawable/launcher_logo"
        android:label="@string/app_name"
        android:largeHeap="true"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity
            android:name=".activities.MainActivity"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接