我一直在拼命地尝试将我的游戏符号上传到crashlytics(gradlew uploadCrashlyticsSymbolFileRelease(,但一直失败:
GC overhead limit exceeded
我已经尝试过什么了...我确保我的恶魔有很多记忆可以玩:
-XX:MaxHeapSize=32g,-XX:MaxPermSize=4096m,-XX:+HeapDumpOnOutOfMemoryError,-Xmx4g
同样在build.gradle上:
dexOptions {
maxProcessCount 2
javaMaxHeapSize "16g"
}
运行带有调试和调用堆栈的 uploadCrashlyticsSymbolFileRelease 显示:
[org.gradle.cache.internal.DefaultFileLockManager] Waiting to acquire shared lock on daemon addresses registry.
[org.gradle.process.internal.health.memory.MemoryManager] Emitting OS memory status event {Total: 17101328384, Free: 1893560320}
[org.gradle.internal.buildevents.BuildExceptionReporter] Caused by: java.lang.OutOfMemoryError: GC overhead limit exceeded
我还删除了gradle注册表文件夹,但到目前为止没有任何效果。 周一联系了Firebase支持人员,但也没有收到回复。
我使用以下版本:
implementation 'com.google.firebase:firebase-analytics:17.4.1'
implementation 'com.google.firebase:firebase-crashlytics-ndk:17.0.0'
这在我拥有的另一款游戏中完美运行。
毫无疑问,这是Firebase的一个已知问题。建议我将 gradle 插件降级到 1.27.0 版,但我仍然遇到问题。
我一直在尝试降级,但不再有关于如何正确设置 1.27 版本的文档。而且我的游戏使用 1.27 的新版本不会向控制台发送任何崩溃信息。
这就是我所做的。在根构建上包含
classpath 'io.fabric.tools:gradle:1.27.0'
然后在应用程序上构建.gradle...
在顶部:
io.fabric.tools:gradle:1.27.0
在安卓标签内:
crashlytics {
enableNdk true
androidNdkOut ... androidNdkLibsOut .....
}
在依赖项上:
implementation 'com.crashlytics.sdk.android:crashlytics:2.10.1'
implementation 'com.crashlytics.sdk.android:crashlytics-ndk:2.1.1'
在 Java 上,在 onCreate 事件中包含以下内容:
Fabric.with(this, new Crashlytics(), new CrashlyticsNdk());
随着进口:
import io.fabric.sdk.android.Fabric;
import com.crashlytics.android.Crashlytics;
import com.crashlytics.android.ndk.CrashlyticsNdk;
我错过了什么?