15

Ant と ProGuard を使用して Android リリースをビルドしようとしています。project.properties の次の行のコメントを外しましたが、上記のファイルのコメントは変更しないでください ;):

proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

難読化すると、次のメモが表示されます。

[proguard] Note: the configuration refers to the unknown class 'com.google.vending.licensing.ILicensingService'
[proguard] Note: the configuration refers to the unknown class 'com.android.vending.licensing.ILicensingService'

なぜこれが起こっているのか理解しています。これらの行は、デフォルトの ProGuard 構成ファイル (${sdk.dir}/tools/proguard/proguard-android.txt) にあります。

-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService

私は Google Licensing Service を使用していないため、クラスは実際には不明です。proguard-project.txt を更新することで、これらのメモを取り除く解決策を見つけました。

-dontnote **ILicensingService

私の質問:これはこれを処理する正しい方法ですか? そのlibはAndroidプロジェクトに必須ではないため、これらのクラスはデフォルトで保持されるべきではないように思えます。これを達成するために考えられる唯一の方法は、デフォルトの構成ファイルをプロジェクトにコピーし、-keep 行を削除して、SDK のデフォルトの構成ファイルを完全に無視することです。どちらも適切な方法ではないようです。または、何か不足していますか?

4

1 に答える 1

17

「-dontnote com.google.vending.licensing.ILicensingService」の設定は問題ありません。実際、デフォルトの構成ファイルの一部である可能性があります。

  1. ライブラリを使用するプロジェクトでは、-keep オプションが必要になる場合があります。
  2. -dontnote オプションは、ライブラリを使用しないプロジェクトの場合、 -keep オプションに関するメモを抑制するのに適している場合があります。このメモは、指定されたクラスが存在しないように見えるため、構成ファイルにタイプミスが含まれている可能性があることを穏やかに思い出させるものです。処理には影響しません。
于 2013-01-22T16:39:08.960 に答える