【问题标题】:Fatal Exception: java.lang.OutOfMemoryError: pthread_create at com.google.maps.api致命异常:java.lang.OutOfMemoryError:com.google.maps.api 处的 pthread_create
【发布时间】:2018-04-08 19:43:50
【问题描述】:

我在我的 android 应用程序上使用谷歌地图。在某些设备 Galaxy S5、J5 和 S5 LTE-A 上,我收到“Fatal Exception: java.lang.OutOfMemoryError pthread_create (1040KB stack) failed: Try again”错误。我从 Fabric Crashlytics 获得以下日志,我无法重现此问题,

这是我得到的日志,

       Fatal Exception: java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again
       at java.lang.Thread.nativeCreate(Thread.java)
       at java.lang.Thread.start(Thread.java:1063)
       at com.google.maps.api.android.lib6.drd.s.t(:com.google.android.gms.DynamiteModulesB@11518438:317)
       at com.google.maps.api.android.lib6.drd.s.a(:com.google.android.gms.DynamiteModulesB@11518438:256)
       at com.google.maps.api.android.lib6.gmm6.util.l.a(:com.google.android.gms.DynamiteModulesB@11518438:109)
       at com.google.maps.api.android.lib6.gmm6.util.n.run(:com.google.android.gms.DynamiteModulesB@11518438:37)
       at java.lang.Thread.run(Thread.java:818)

【问题讨论】:

    标签: java android google-maps google-maps-api-3


    【解决方案1】:

    这解决了我的问题,

    1. 在我的 AndroidManifest.xml 中添加了android:largeHeap="true"

    2. 在 gradle.properties 上将 org.gradle.jvmargs=-Xmx1536m 更改为 org.gradle.jvmargs=-Xmx4608m

    3. 添加到我的应用程序 build.gradle 文件中

      android { dexOptions { incremental true javaMaxHeapSize "4g" } }

    【讨论】:

    • 这些选项不是用于构建 apk 的Gradle 进程吗?那如何解决应用程序的OutOfMemoryError 崩溃,因为这些 gradle 内存选项与在设备上运行 apk 的进程的内存无关?
    • 我也有同样的问题,真的有效吗?有人能解释一下我们为什么使用这种方法吗?
    • 只有android:largeHeap="true" 影响应用程序运行时。 2. 和 3. 影响应用程序构建性能。这不是一个正确的答案。
    • 这将如何解决崩溃问题?
    【解决方案2】:

    运行 32 位 java 时,可以使用多少内存是有限制的。我不知道它是否可以更改,但简单的解决方案是使用 64 位构建的 java。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多