• /
  • ログイン

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

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

ProGuardを設定する

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

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

    • 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. オプション:モバイルモニタリング設定ページを使用してモバイルアプリをカスタマイズしてください

データが表示されない場合は、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 8.x:アプリのbuildTypes設定が以下のようであることを確認します。

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

  5. アプリをエミュレーターまたはデバイスで実行し、モバイルアプリの概要ページでデータを表示し始めます。

  6. オプション:モバイルモニタリング設定ページを使用してモバイルアプリをカスタマイズしてください

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

その他のヘルプ

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

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