【问题标题】:firebase-crashlytics-ndk: Unstripped native library path required by generateCrashlyticsSymbolFreeDebug does not existfirebase-crashlytics-ndk:generateCrashlyticsSymbolFreeDebug 所需的未剥离本机库路径不存在
【发布时间】:2021-02-17 13:06:02
【问题描述】:

我正在使用...

  • com.google.firebase:firebase-crashlytics-ndk:17.3.1
  • com.google.firebase:firebase-crashlytics-gradle:2.4.1
  • com.google.gms:google-services:4.3.5

... 在我的 Android 应用程序项目中,它依赖于一个 Android 库项目。该库项目同时使用 Kotlin 和 C-Code。库构建过程输出一个 *.aar 和未剥离的 *.so 文件。当我构建应用程序项目时,我可以验证库中未剥离的 *.so 文件是否已解压缩到 app/build/intermediates/merged_native_libs/<BuildVariant>/out/lib 中并且它们仍然未剥离。

应用配置了构建风格 freepaid 以及通常的构建类型 debugrelease

首先,我通过./gradlew clean assembleFreeDebug组装APK。

然后,我调用 ./gradlew generateCrashlyticsSymbolFileFreeDebug 失败:

任务“:app:generateCrashlyticsSymbolFileFreeDebug”执行失败。 generateCrashlyticsSymbolFileFreeDebug 所需的未剥离本机库路径不存在:app\build\intermediates\merged_native_libs\PaidDebug\out\lib。检查您的配置,或使用 firebaseCrashlytics.unstrippedNativeLibsDir 扩展属性覆盖。

这是 Gradle 插件混淆了构建风格的错误,还是我这边的错误配置?

如果我也 assemblePaidDebug 没有 clean,我可以解决它。然后,generateCrashlyticsSymbolFileFreeDebugapp/build/crashlytics 中生成符号文件。但是,我不确定混合输入文件(口味)是否是一个好主意以生成 *.cSYM 文件。

相关

【问题讨论】:

    标签: android firebase android-ndk crashlytics crashlytics-android


    【解决方案1】:
    1. 尝试删除未剥离的NativeLibsDir。如果您将 C++ 代码作为应用构建的一部分而不是在库中构建,crashlytics 应该会自动找到必要的路径
    2. 如果它仍然无法正常工作并且您正在使用 cmake 进行构建,请尝试使用以下路径:./build/intermediates/cmake/release/obj

    【讨论】:

    • 我没有将 C++ 代码构建为应用程序构建的一部分。该库是独立库项目中的单独构建。
    • 这与我的设置相同。那么你可以使用这样的路径: unstrippedNativeLibsDir '../lib/build/intermediates/cmake/release/obj'
    猜你喜欢
    • 1970-01-01
    • 2023-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多