Android Crashlytics ndk; build.gradle 中 NdkOut 和 NdkLibsOut 的值

Android Crashlytics ndk; values of NdkOut and NdkLibsOut in build.gradle

我已将 Crashlytics Fabric 集成到我的应用程序中,已成功报告与 sdk 相关的崩溃。

对于ndk部分,我已经按照博客的说明进行操作; The Wait is Over: Launching Crashlytics for Android NDK,但未报告 ndk 崩溃。我的疑问是,因为其他部分已经足够清楚了,所以我没有提供androidNdkOutandroidNdkLibsOut的正确路径,如图:

疑惑和问题在我build.gradle,这里是...

crashlytics {  

    enableNdk true
    androidNdkOut //what would be the obj here?
    androidNdkLibsOut 'src/main/jniLibs' //path for my jni libraries  

}

请告诉我是否应该 post 代码的任何其他部分

遵循本指南 -https://fabric.io/downloads/gradle/ndk。我们将两个字段(androidNdkOut 和 NdkLibsOut)都留空

有类似的问题:我必须在 Fabric.with() 添加 CrashlyticsNdk 工具包。

Fabric fabric = new Fabric.Builder(context)
    .kits(new Twitter(authConfig), new Crashlytics(), new CrashlyticsNdk())
    .debuggable(true)
    .build();
Fabric.with(fabric);

你可以这样查看androidNdkOutandroidNdkLibsOut

$ ./gradlew -d clean assemble{Flavor} | grep ndk-build

你会发现 NDK_OUTNDK_LIBS_OUT

EDIT/UPDATE 2017 年 7 月 7 日

来自 Fabric 团队的 Matt 在这里更新了这个答案 - 我们刚刚发布了 Fabric Gradle 插件版本 1.23.0,其中包括在您使用时自动检测适当的本机库路径的支持externalNativeBuild DSL 与 Gradle 版本 2.2.0+ 的 Android 插件,因此您不再需要设置 androidNdkOutandroidNdkLibsOut 属性。这将适用于 CMake 和 ndk-build。在此处查看更多信息:https://docs.fabric.io/android/crashlytics/ndk.html#specifying-the-path-to-debug-and-release-binaries


在得到 Crashlytics/Fabric 支持人员的帮助后我可以解决问题,感谢他们..这个答案。

首先,

crashlytics {  

    enableNdk true
    androidNdkOut //what would be the obj here?
    androidNdkLibsOut 'src/main/jniLibs' //path for my jni libraries  

}  

对于我的应用 build.gradle,它应该是:

crashlytics {
    enableNdk true
    androidNdkOut 'src/main/jniLibs'
    androidNdkLibsOut 'src/main/jniLibs'
}  

androidNdkOut is where your debug binaries are located. This defaults to 'src/main/obj' but you can set in the crashlytics { } if it's different in your project.

a link 其中包含有关相同的有用信息:crashlytics knowledgebase; Missing line numbers in native crashes

一个次要但非常有用的部分是 运行 命令,例如带有 --stacktrace 选项的 uploadReleaseSymbols。认为值得一提,因为(上传发布符号)也是我这边没有收到崩溃报告的问题。