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

我的问题:这是处理这个问题的正确方法吗?在我看来,无论如何都不应该默认保留这些类,因为该库对于 android 项目不是强制性的。我能想到的唯一方法是将默认配置文件复制到我的项目中,删除 -keep 行并完全忽略 SDK 中的默认配置文件。这似乎也不是正确的方法。还是我错过了什么?

4

1 回答 1

17

设置“-dontnote com.google.vending.licensing.ILicensingService”很好。事实上,它可能是默认配置文件的一部分。

  1. 使用该库的项目可能需要 -keep 选项。
  2. 对于不使用该库的项目,-dontnote 选项可能会很好地抑制有关 -keep 选项的注释。该注释只是一个温和的提醒,配置文件可能包含拼写错误,因为指定的类似乎不存在。不影响处理。
于 2013-01-22T16:39:08.960 回答