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

アドミンまたはオーナー

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

ProGuardを設定する

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

  1. 御社アプリケーションにNew Relic Mobile排除を追加します。たとえば:

    • New Relicの計測をサポートするには、keep classを追加します。
    • 未解決の問題に関連した警告を無効にするには、dont warnを追加します。
    • クラッシュレポートに関する行番号を保存するには、LineNumberTableを追加します。
    • 例外処理に関するスタック情報を保存するには、SourceFileEnclosingMethodを追加します。
  2. 以下を、ご利用のProGuard設定ファイルproguard.cfgproguard-android.txtproguard-rules.proなど)に追加してください:

    -keep class com.newrelic.** { *; }
    -dontwarn com.newrelic.**
    -keepattributes Exceptions, Signature, InnerClasses, LineNumberTable, SourceFile, EnclosingMethod
    
  3. プロジェクトを整理して再構築します。
  4. アプリケーションをエミュレーターまたはデバイスで実行し、ご利用のモバイルアプリの概要ページでデータを表示し始めます
  5. オプション:New Relic Mobile設定ページを使用してモバイルアプリをカスタマイズしてください

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

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

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

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

ライブラリ ルール
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プラグインを設定後、アプリケーションのbuildTypes設定が次の内容に類似していることを確認してください:

    buildTypes {
       release {
          minifyEnabled true
          proguardFile getDefaultDexGuardFile('dexguard-release.pro')
          proguardFile 'proguard-rules.pro'
          proguardFile 'dexguard-project.txt'
       } ...
    
  4. プロジェクトを整理して再構築します。
  5. アプリケーションをエミュレーターまたはデバイスで実行し、ご利用のモバイルアプリの概要ページでデータを表示し始めます
  6. オプション:New Relic Mobile設定ページを使用してモバイルアプリをカスタマイズしてください

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

その他のヘルプ

推奨する詳細情報: