【问题标题】:android: crash when loading a layout with changed textandroid:加载带有更改文本的布局时崩溃
【发布时间】:2017-04-11 21:59:00
【问题描述】:

我有一个布局,每行包含 5 个字符的图像和文本。当我连续加载此布局大约 50-100 次时,应用程序崩溃。 -我只是启动这个布局的活动,按回并用不同的参数重新启动它等等..

我加载相同的布局,但 50-100 次中的每一次都有在 onCreate 代码中设置的不同图像和文本

编译器成功到达 onCreate 代码的末尾。

分配有什么问题?

为什么分配失败?

我能知道谁是有问题的字符串吗?

我该如何解决?

E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.sampleapp, PID: 24414                              
java.lang.OutOfMemoryError: Failed to allocate a 566582 byte allocation with 326088 free bytes and 318KB until OOM
at java.lang.StringFactory.newStringFromChars(Native Method)
at java.lang.AbstractStringBuilder.toString(AbstractStringBuilder.java:629)
at java.lang.StringBuilder.toString(StringBuilder.java:663)
at org.chromium.content_public.browser.LoadUrlParams.buildDataUri(LoadUrlParams.java:113)
at org.chromium.content_public.browser.LoadUrlParams.createLoadDataParamsWithBaseUrl(LoadUrlParams.java:164)
at org.chromium.android_webview.AwContents.loadDataWithBaseURL(AwContents.java:1460)
at com.android.webview.chromium.WebViewChromium.loadDataWithBaseURL(WebViewChromium.java:609)
at android.webkit.WebView.loadDataWithBaseURL(WebView.java:978)
at com.facebook.ads.internal.adapters.h.a(Unknown Source)
at com.facebook.ads.internal.adapters.h.loadBannerAd(Unknown Source)
at com.facebook.ads.internal.DisplayAdController.a(Unknown Source)
at com.facebook.ads.internal.DisplayAdController.o(Unknown Source)
at com.facebook.ads.internal.DisplayAdController.d(Unknown Source)
at com.facebook.ads.internal.DisplayAdController$5.run(Unknown Source)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

【问题讨论】:

  • at com.facebook.ads... Facebook 是问题
  • 你说的太对了!如果没有 loadAd,应用程序即使在 100 次后也不会崩溃!然后我尝试使用 try-catch 但它无法捕获异常。无论如何,谢谢!

标签: java android string out-of-memory allocation


【解决方案1】:

它似乎有内存泄漏,因为您的应用程序没有正确处理 fb 库,或者可能是 fb 库的问题。您需要使用分析您的应用程序

https://developer.android.com/studio/profile/am-memory.html

Android Monitor 提供了内存监视器,因此您可以更轻松地 监控应用程序性能和内存使用情况以查找已释放的对象, 定位内存泄漏,并跟踪连接的内存量 设备正在使用。内存监视器报告您的应用程序如何分配 内存并帮助您可视化应用程序使用的内存。它让 你:

【讨论】:

    猜你喜欢
    • 2017-12-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2017-09-17
    • 2011-10-18
    • 2020-10-14
    • 1970-01-01
    相关资源
    最近更新 更多