AndroidエージェントでProGuardまたはDexGuardをサポートするには、以下の手順に従ってください。当社のAndroidに関する互換性と要件をチェックし、AndroidエージェントSDKをすでにインストールしている場合は、ProGuardまたはDexGuardの最新バージョンにアップグレードする前に、手順に従ってください。
ProGuardを設定する
ProGuardへのサポートを追加するには:
アプリに除外を追加します。たとえば、
- New Relicのインストゥルメンテーションをサポートするには、
keep class
を追加します。 - 未解決の問題に関連した警告を無効にするには、
dont warn
を追加します。 - クラッシュレポートに関する行番号を保存するには、
LineNumberTable
を追加します。 - 例外処理のスタック情報を保存するには、
SourceFile
とを追加しますEnclosingMethod.
- New Relicのインストゥルメンテーションをサポートするには、
以下をProGuard設定ファイル(
proguard.cfg
、proguard-android.txt
、proguard-rules.pro
など)に追加します。-keep class com.newrelic.** { *; }-dontwarn com.newrelic.**-keepattributes Exceptions, Signature, InnerClasses, LineNumberTable, SourceFile, EnclosingMethod#### NewRelic Gradle plugin 7.x may require the following additions:### Retain generic signatures of TypeToken and its subclasses if R8 version 3.0 full-mode is enabled.# https://r8.googlesource.com/r8/+/refs/heads/master/compatibility-faq.md#r8-full-mode-keepattributes Signature-keep class com.newrelic.com.google.gson.reflect.TypeToken { *; }-keep class * extends com.newrelic.com.google.gson.reflect.TypeToken# For using GSON @Expose annotation-keepattributes *Annotation*プロジェクトを整理して再構築します。
アプリをエミュレーターまたはデバイスで実行すると、モバイルアプリケーションのOverviewページでデータが表示されるようになります。
オプション:Settingsページを使用するとモバイルアプリケーションをカスタマイズできます。
データが表示されない場合は、logcat
出力にエラーがないか見直してください。
このドキュメントはインストールの役に立ちましたか?
ネットワークライブラリのサポート
New Relicのインストゥルメンテーションは、ProGuardがコードを難読化する前に行われます。こうしたライブラリの適正なインストゥルメンテーションを確保するには、そのクラスがProGuardによって難読化されるのを防ぐ必要があります。
以下に、これらのクラスを保存する上で適用するルールの例を示します。これは完全リストではありません。ご利用のライブラリまたはバージョン次第で、異なるルールを適用する必要があります。
Library | Rules |
---|---|
Apache Http |
|
OkHttp 2 |
|
OkHttp 3 |
|
Retrofit 2 |
|
DexGuardを設定する
DexGuardは、ProGuardと同じ設定オプションを使用しているため、既存のあらゆるProGuard設定ファイルを読み取ることができます。DexGuardは、独自の追加設定オプションも抱えており、多数の共通したアプリフレームワーク向けにサンプル構成も提供できます。
DexGuardのサポートを追加するには:
DexGuardをアプリケーションに追加して、DexGuardの指示に従いGradleプラグインを設定します。
具体的なDexGuard設定オプションを保有する
dexguard-project.txt
ファイルを作成して、以下を追加します。-dontnote com.newrelic.agent.android.NewRelic-dontnote com.newrelic.agent.android.harvest.crash.CrashDexGuardプラグインの設定後、以下を確認してください。
DexGuard 8.x:アプリの
buildTypes
設定が以下のようであることを確認します。buildTypes {release {minifyEnabled falseshrinkResources falseproguardFile getDefaultDexGuardFile('dexguard-release.pro')proguardFile 'proguard-rules.pro'proguardFile 'dexguard-project.txt'}...プロジェクトを整理して再構築します。
アプリをエミュレーターまたはデバイスで実行すると、モバイルアプリケーションのOverviewページでデータが表示されるようになります。
オプション:モバイル監視Settingsページを使用するとモバイルアプリをカスタマイズできます。
データが表示されない場合は、logcat
出力にエラーがないか見直してください。