• /
  • ログイン
  • 無料アカウント

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プラグインの設定後、以下を確認してください。DexGuard 9.x:R8圧縮が無効であること、およびdexguardブロック設定が以下のような書式であることを確認します。

    buildTypes { release { minifyEnabled false shrinkResources false } ... ... } dexguard { ... configurations { release { defaultConfiguration 'dexguard-release.pro' configuration 'proguard-rules.pro' configuration 'dexguard-project.txt } } } ...

    DexGuard 8.x:アプリの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出力にエラーがないか見直してください。

その他のヘルプ

さらに支援が必要な場合は、これらのサポートと学習リソースを確認してください:

問題を作成するこのページを編集する
Copyright © 2020 New Relic Inc.