• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

Androidアプリ向けにProGuardまたはDexGuardを設定する

AndroidエージェントでProGuardまたはDexGuardをサポートするには、以下の手順に従ってください。当社のAndroidに関する互換性と要件をチェックし、AndroidエージェントSDKをすでにインストールしている場合は、ProGuardまたはDexGuardの最新バージョンにアップグレードする前に、手順に従ってください。

ProGuardを設定する

ProGuardへのサポートを追加するには:

  1. アプリに除外を追加します。たとえば、

    • New Relicのインストゥルメンテーションをサポートするには、keep classを追加します。
    • 未解決の問題に関連した警告を無効にするには、dont warnを追加します。
    • クラッシュレポートに関する行番号を保存するには、LineNumberTableを追加します。
    • 例外処理のスタック情報を保存するには、SourceFileとを追加します EnclosingMethod.
  2. 以下をProGuard設定ファイルproguard.cfgproguard-android.txtproguard-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*
  3. プロジェクトを整理して再構築します。

  4. アプリをエミュレーターまたはデバイスで実行すると、モバイルアプリケーションのOverviewページでデータが表示されるようになります。

  5. オプション:Settingsページを使用するとモバイルアプリケーションをカスタマイズできます

データが表示されない場合は、logcat出力にエラーがないか見直してください。

このドキュメントはインストールの役に立ちましたか?

ネットワークライブラリのサポート

New Relicのインストゥルメンテーションは、ProGuardがコードを難読化する前に行われます。こうしたライブラリの適正なインストゥルメンテーションを確保するには、そのクラスがProGuardによって難読化されるのを防ぐ必要があります。

以下に、これらのクラスを保存する上で適用するルールの例を示します。これは完全リストではありません。ご利用のライブラリまたはバージョン次第で、異なるルールを適用する必要があります。

Library

Rules

Apache Http

-keep class org.apache.http.** { *; }
-dontwarn org.apache.http.**

OkHttp 2

-keep class com.squareup.okhttp.* { *; }
-dontwarn com.squareup.okhttp.**
-dontwarn okio.**

OkHttp 3

-keep class okhttp3.** { *; }
-dontwarn okhttp3.**
-dontwarn okio.**

Retrofit 2

-keep class retrofit2.** { *; }
-dontwarn retrofit2.**

DexGuardを設定する

DexGuardは、ProGuardと同じ設定オプションを使用しているため、既存のあらゆるProGuard設定ファイルを読み取ることができます。DexGuardは、独自の追加設定オプションも抱えており、多数の共通したアプリフレームワーク向けにサンプル構成も提供できます。

DexGuardのサポートを追加するには:

  1. DexGuardをアプリケーションに追加して、DexGuardの指示に従いGradleプラグインを設定します。

  2. 具体的なDexGuard設定オプションを保有するdexguard-project.txtファイルを作成して、以下を追加します。

    -dontnote com.newrelic.agent.android.NewRelic
    -dontnote com.newrelic.agent.android.harvest.crash.Crash
  3. DexGuardプラグインの設定後、以下を確認してください。

    DexGuard 8.x:アプリのbuildTypes設定が以下のようであることを確認します。

    buildTypes {
    release {
    minifyEnabled false
    shrinkResources false
    proguardFile getDefaultDexGuardFile('dexguard-release.pro')
    proguardFile 'proguard-rules.pro'
    proguardFile 'dexguard-project.txt'
    }
    ...
  4. プロジェクトを整理して再構築します。

  5. アプリをエミュレーターまたはデバイスで実行すると、モバイルアプリケーションのOverviewページでデータが表示されるようになります。

  6. オプション:モバイル監視Settingsページを使用するとモバイルアプリをカスタマイズできます

データが表示されない場合は、logcat出力にエラーがないか見直してください。

Copyright © 2024 New Relic株式会社。

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.