0

私はほとんどgradleに関する質問があります。クラッシュサイクスNDKのシンボルとGradleのタスク

AndroidアプリでNDKクラッシュを報告するのにCrashlyticsを使用しています。 私はbuild.gradleにndk-buildを呼び出し、cppファイルを.soファイルにコンパイルするタスクを持っています。 このタスクの最後に、生成されたシンボルをCrashlyticsにアップロードするタスクを呼び出したいと思います。

AndroidスタジオにFabricプラグインをインストールした後、[Gradle]タブに追加された新しいタスクがいくつか見受けられました。それらのうちの1つは です。crashlyticsUploadSymbols [buildType] [flavor] buildTypeとflavorは、現在選択されているビルドタイプとフレーバーを示します。

このタスクでは、シンボルファイルがアップロードされているようです。

私の質問は です。このタスクをbuild.gradleから呼び出すことはできますか?

./gradlew crashlyticsUploadSymbols [buildType] [味]

それはbuild.gradle内から何とかこのタスクを呼び出すことは可能です: は現在、私はの形でAndroidのメーカーの端末タブで手動コールを使うのか?

このタスクを呼び出すには、buildNdkタスクの最後にfinalizedByを使用します。そのため、buildNdkが完了すると、アップロードタスクが実行されます。

また、現在のbuildTypeとフレーバーを取得して、crashlyticsUploadSymbolsコールに追加できるようにするにはどうしたらよいですか?

ありがとうございました!

答えて

1

Mike from CrashlyticsとFabricはここにあります。

これもTwitterコミュニティフォーラムで回答されましたが、ここで同じ回答を共有しています。

オプション1:

あなたが唯一の希望または、あなたはあなたのNDKビルドタスクのfinalizedByタスクとしてcrashlticsUploadSymbolsReleaseを設定することができ、あなたのリリースビルドのシンボルをアップロードする必要がある場合。

オプション2: あなたは複数のバリアントベースのタスクを持っている場合は、あなたのような何かを行うことができます:

android { 
... 
    afterEvaluate { 
     assembleDebug.finalizedBy(crashlyticsUploadSymbolsDebug) 
     assembleRelease.finalizedBy(crashlyticsUploadSymbolsRelease) 
    } 
} 
+0

これは動作しません:以下は私のために仕事をした

android.applicationVariants.all { variant -> def variantName = variant.name.capitalize() def task = project.task ("ndkBuild${variantName}") task.finalizedBy project.("crashlyticsUploadSymbols${variantName}") } 
marchinram

+0

あなたは重複した作業をしているかもしれませんが、詳細を追加して新しい質問を投稿することをお勧めします –

0

私は `エラー:(101、0)タスクを追加できません: 'App:externalNativeBuildProdDebug'という名前のタスクが既に存在します。 Open File `まだ手動でアップロードする必要があります:(
+0

これは質問に対する回答ではありません。評判](https://stackoverflow.com/help/whats-reputation)では、[投稿にコメントする](https://stackoverflow.com/help/privileges/comment)することができます;代わりに[質問者から明確にする必要はありません](https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reference-to-comment-what-c​​an-i-do-instead) - [レビューの投稿](/レビュー/低品質の投稿/ 18173943) – thewaywewere

関連する問題