NDKとgradle CMakeを使用するAndroidプロジェクトにCrashlyticsサポートを追加しようとしています。つまり、共有プロジェクトのシンボルが必要です。だから私は、リリースビルドのシンボルを作成したい場合、私はgradlew crashlyticsUploadSymbolsRelease
Crashlytics NDKのシンボルビルドをコマンドラインから
と呼ぶことにしますhttps://docs.fabric.io/android/crashlytics/ndk.htmlでの公式文書では、は、シンボル生成およびアップロードプロセスは、標準的なプロジェクト構造を前提としていることを述べている:デバッグバイナリのためのsrc /メイン/ OBJ、およびsrc/main/libs(ndk-buildによって生成されたリリースバイナリ用)。 Gradleのファイルで
これは次のようである新しいブロックを意味:私は私のネイティブLIBSを構築するためのGradle CMakeの統合を使用していますので
crashlytics {
enableNdk true
androidNdkOut 'src/main/obj'
androidNdkLibsOut 'src/main/libs'
}
を、当然のデフォルトのパスが機能していません。リリースモードのネイティブライブラリはbuild/intermediates/cmake/release/obj
ディレクトリに組み込まれており、デバッグモードではbuild/intermediates/cmake/debug/obj
ディレクトリに移動します。
試行錯誤から、リリースビルドを動作させたいと思ったら、以下に示すようにモードネイティブライブラリを両方の行にリリースする必要があります。
crashlytics {
enableNdk true
androidNdkOut 'build/intermediates/cmake/release/obj'
androidNdkLibsOut 'build/intermediates/cmake/release/obj'
}
少なくとも私のシナリオでは、同じディレクトリを指すので、私は本当に、androidNdkOut
とandroidNdkLibsOut
変数の違いを理解していません。幸いにも、これは私にとっては問題ではありません。なぜなら、私のリリースのバイナリを扱うのにCrashlyticsが必要なだけなのでです。
だから私の質問は以下のとおりです。
1)本当にandroidNdkOut
とandroidNdkLibsOut
の違いは何ですか?デバッグバイナリへのパスを1つに、パスをバイナリを他に解放できないのはなぜですか?説明に加えて具体的な例がいいでしょう。
2)私のデバッグライブラリにもシンボルを含めたい場合は、どのように私のgradleファイルを変更すればよいですか?コマンド gradlew crashlyticsUploadSymbolsRelease
と同様にgradlew crashlyticsUploadSymbolsDebug
が機能することを意味しますか?
スレッドCrashlytics NDK symbols and Gradle tasksとCrashlytics NDK multi androidNdkOut path supportにこれに関する議論がありますが、実際にはこれらの2つの質問には答えません。
行番号は使えますか?ストライプされていないバイナリはどこで見つけましたか?あなたが提供したそれらのパスは、剥奪された.soだけをcontaingしていますか? – urSus