Gradle プラグイン(Android 用)トラブルシューティング
以下に、DashO™ Gradle プラグイン(Android 用)を構成する場合によく発生する可能性のある問題を示します。 PreEmptive Protection™ DashO については、こちらにトラブルシューティングに関する専用のセクションがありますので、参照してください。
- プラグインが利用可能かどうかを確認する
- DashO ホームの問題
- DashO x.y or later not found.Please set the DASHO_HOME property, or set 'home' or 'searchVersion' in the 'dasho' closure in your buildscript.
- Specified DashO Home '[file path]' is not valid
- DashO version 'x.y' was not found.Could not find {some jar}.Please use a different version or set DashO Home.
- Option --pathMap not understood
- 構成に関するその他の問題
- Could not get unknown property {some property} for object of type com.preemptive.dasho.gradle.DashOExtension.
- Error: Could not find method libraryAssetDirs() (or libraryResourceDirs()) for arguments...
- Error: You must use an Android Mode configuration file with the DashO Gradle Plugin for Android.
- Changes were not applied. {Some Reason}
- Exclude pattern '{pattern}' did not match any inputs: {list of names}
- Warning: ProGuard appears to be enabled instead of R8.
- Warning: minifyEnabled is false for build type "[current build type]".
- A problem occurred configuring project {some name}. {Maybe some additional information}
- ビルド タスク エラー
- Execution failed for task ':transformClassesWithInstantRunForDebug'
- Execution failed for task ':minifyReleaseWithR8'
- ランタイム エラー
- 一時的に DashO の統合を無効にする
- パラメーターのトラブルシューティング
- DashO のログの確認
- ビルドのパフォーマンスの問題
プラグインが利用可能かどうかを確認する
本プラグインがインストールされていることを確認するには、gradlew tasks
を実行します。
com.preemptive.dasho.android
プラグインを正しく適用できた場合は、タスク dashOPluginVersion
が Help tasks
セクションに表示されます。
DashO ホームの問題
DashO x.y or later not found.Please set the DASHO_HOME property, or set 'home' or 'searchVersion' in the 'dasho' closure in your buildscript.
DashO ホームの指定方法が、DashO ホームの構成に記載されている手順のいずれでもありません。 インストールされた DashO の検出されたバージョンが、このバージョンのプラグインと互換性がない場合に、このメッセージが表示される可能性があります。
Specified DashO Home '[file path]' is not valid
指定したディレクトリに DashOPro.jar
ファイルが含まれていることを確認してください。
DashO Gradle プラグイン(Android 用)v1.1.x を使用している場合、指定されたディレクトリには Encrypter.jar
ファイルも含まれています。
DashO version 'x.y' was not found.Could not find {some jar}.Please use a different version or set DashO Home.
指定されたバージョンの DashO をプラグインが検索するときに、DashO のインストールが見つかっても、必要な jar がそのインストールには含まれていない場合はエラーになります。
これは、必要な Encrypter.jar
が含まれていない特定のバージョン(10.1
など)を指定した場合に発生する可能性があります。
指定された searchVersion
に、サポートされるバージョンの DashO が含まれることを確認してください。
この場所は直接構成することもできます。
Option --pathMap not understood
ご使用の DashO のバージョンが DashO Gradle プラグイン(Android 用)と互換性がありません。 このプラグインは、DashO 10.x 以降と互換性があります。
構成に関するその他の問題
Could not get unknown property {some property} for object of type com.preemptive.dasho.gradle.DashOExtension.
プロパティのスペルが正しいことを確認してくだい。
この問題は、等号を使って javaOptions
、libraryAssetDirs
または libraryResourceDirs
を設定しようとした場合(例:javaOptions = "-Xmx512m"
)にも発生します。
=
は使用しないでください(例:javaOptions "-Xmx512m"
)。
Error: Could not find method libraryAssetDirs() (or libraryResourceDirs()) for arguments...
このエラーは、v1.1 より前で libraryAssetDirs
または libraryResourceDirs
を設定しようとしたときに発生します。
これらのオプションは v1.2 で追加されました。
Error: You must use an Android Mode configuration file with the DashO Gradle Plugin for Android.
DashO と一緒に使用しようとしている DashO 構成(.dox)ファイルは、Android モード用に構成されていないため移行する必要があります。
Changes were not applied. {Some Reason}
この問題は、デバッグ ビルドで DashO を有効にしているときに Apply Changes を使用しようとした場合には、JVMTI error: JVMTI_ERROR_UNMODIFIABLE_CLASS
や Adding classes requires an app restart
のような理由と共に表示されることがあります。
Apply Changes は、DashO で実行される変更とは互換性がありません。
Exclude pattern '{pattern}' did not match any inputs: {list of names}
指定されたパターンは、DashO の変換に指定されたどの入力とも一致しませんでした。 パターンに間違いがないか、エラー メッセージの下の名前一覧で再確認してください。 保護対象からの除外で説明したように、DashO の変換の前に他の変換を実行した場合は、名前が壊れる可能性があります。
Warning: ProGuard appears to be enabled instead of R8.
この警告が表示されるのは、R8 の代わりに ProGuard を有効化した可能性がある場合です。 ProGuard では、DashO によって処理されたクラスを正しく処理できないため、それらのクラスを処理しようとすると、致命的なエラーになる可能性があります。 DashO Gradle プラグイン(Android 用)と一緒に使用するのは ProGuard でなく R8 にすることを強くお勧めします。
ProGuard は、R8 を手動で有効化せずに 3.4.0 より前のバージョンの Android Gradle プラグインを使用する場合に、R8 の代わりに実行されます。
また、ProGuard は、gradle.properties
ファイル内で
android.enableR8=false
を設定することで R8 を無効化している場合にも実行されます。
R8 を有効化するには、gradle.properties
内で android.enableR8=true
を設定します。
詳細については、R8 の有効化を参照してください。
Warning: minifyEnabled is false for build type "[current build type]".
このメッセージが表示されるのは、DashO を実行しているバリアントのビルド タイプに対して
minifyEnabled
を true
に設定していない場合です。
つまり、DashO が保護しているクラスが、R8 によって処理されない場合です。
DashO Gradle プラグイン(Android 用)を使用する場合にアプリケーションまたはライブラリを完全に保護するには、DashO と共に R8 を実行する必要があります。
詳細については、R8 の有効化を参照してください。
A problem occurred configuring project {some name}. {Maybe some additional information}
DashO Gradle プラグイン(Android 用)v1.1.x(以降)を Android Gradle v3.2.x で使用しようとすると、追加情報として ASCII
が表示されることがあります。
サポートされるバージョンの Android Gradle プラグインを構成しておいてください。
ビルド タスク エラー
Execution failed for task ':transformClassesWithInstantRunForDebug'
このエラーが表示されるのは、Android Studio でビルドを行っているときで、DashO をデバッグ ビルド用に有効にしているが、Instant Run を無効にしていない場合です。 DashO を有効化したバリアントを変更するか、Instant Run を無効化してください。
Execution failed for task ':minifyReleaseWithR8'
R8 がクラスの処理中に問題が発生しています。
Gradle ビルドを、--debug
または --stacktrace
オプションで実行し、詳しい情報を入手してください。
ある既知の問題では、kotlinx.coroutines.internal.MainDispatcherLoader.loadMainDispatcher()
の処理中に R8 が NullPointerException
をスローします。
この問題が発生した場合は、制御フロー処理からそのメソッドを除外するか、または DashO から kotlinx-coroutines
を完全に除外します。
ランタイム エラー
Kotlin コルーチン
R8 が正しく構成されていない場合は、java.lang.NoSuchFieldException: No field inFlightTasks
または java.lang.IllegalStateException: Module with the Main dispatcher is missing.
のような例外を受け取ることがあります。
R8 の構成が適切に行われているか確認してください。
java.lang.RuntimeException: Internal error in Cloud Firestore {version}
このエラーの原因の 1 つには文字列の暗号化とリフレクションが関係しています。 このエラーが発生した場合、問題のコードを文字列の暗号化から除外することができます。 以下のメソッドは、Firebase バージョン 22.1.1 でこのエラーを引き起こすことが知られています 。
io.grpc.LoadBalancerRegistry:getHardCodedClasses()
io.grpc.ManagedChannelProvider$HardcodedClasses:iterator()
io.grpc.NameResolverRegistry:getHardCodedClasses()
一時的に DashO の統合を無効にする
DashO にファイルを処理させずにビルドを実行したい場合は、gradlew
の実行時、プロパティ DISABLE_DASHO
を使用してください。
パラメーターのトラブルシューティング
DashO に渡されるすべてのパラメーターをご覧になりたい場合は、gradlew
の実行時、プロパティ SHOW_DASHO_CMD
を使用してください。
また、debug オプションを構成することもできます。
DashO のログの確認
DashO の出力は、自動的にコンソールに表示されます。
また、DashO の出力は、build/outputs/logs/dasho-{variantName}-log.txt
にあるログ ファイルにも捕捉されています。
ビルドのパフォーマンスの問題
DashO のトラブルシューティングに関するページを参照してください。