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

Par*_*rth 10 android android-ndk crashlytics build.gradle android-gradle-plugin

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

对于ndk部分,我已按照博客的说明进行操作; 等待结束:为Android NDK启动Crashlytics,但没有报告ndk崩溃.我的疑问是,因为其他部分足够清楚,我不是为提供正确的路径androidNdkOutandroidNdkLibsOut,如图:

在此输入图像描述

怀疑和问题在于我build.gradle,在这里......

crashlytics {  

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

}
Run Code Online (Sandbox Code Playgroud)

如果我要发布代码的任何其他部分,请告诉我

Par*_*rth 9

编辑/更新2017年7月7日

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


我可以在获得Crashlytics/Fabric Support的帮助后解决问题,感谢他们......这个答案.

首先,为

crashlytics {  

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

}  
Run Code Online (Sandbox Code Playgroud)

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

crashlytics {
    enableNdk true
    androidNdkOut 'src/main/jniLibs'
    androidNdkLibsOut 'src/main/jniLibs'
}  
Run Code Online (Sandbox Code Playgroud)

androidNdkOut是调试二进制文件所在的位置.默认为'src/main/obj',但如果项目中的不同,您可以在crashlytics {}中设置.

一个包含相同信息的链接:crashlytics知识库; 原生崩溃中缺少行号

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


Ant*_*ton 5

请遵循本指南 - https://fabric.io/downloads/gradle/ndk.我们保持两个字段为空(androidNdkOut和NdkLibsOut)

  • 他们肯定不希望任何人发现这一点. (2认同)