我有以下项目设置: 两个库的'commoncomponents'和'libs'都定义了一些活动,例如:使用webview和对话帮助程序类。 然后是我的“应用程序库”,其中包含应用程序代码 App'Free'和App'Full'引用。
我已使用以下附加条目启用了proguard
-keepclassmembers class **.R$* {
public static <fields>;
}
然而,在使用release target和proguard启动ant时,构建过程失败 抱怨R $字符串类缺失
如果我在'commoncomponents'上调用'ant release','libs'或'application library'项目proguard成功, 但是当我在'app free'或'app full'上启动时,会出现这个错误消息:
[echo] ----------
[echo] Creating output directories if needed...
[mkdir] Created dir: ~/Workspace/Workspaces/workspace-indigo/MyApp/bin/classes
[echo] ----------
[echo] Resolving Dependencies for bin...
[dependency] Library dependencies:
[dependency] ------------------
[dependency] Ordered libraries:
[dependency] ------------------
[dependency] API<=15: Adding annotations.jar to the classpath.
-pre-build:
-code-gen:
[mergemanifest] No changes in the AndroidManifest files.
[echo] Handling aidl files...
[aidl] Found 2 AIDL files.
[aidl] No AIDL files to compile.
[echo] ----------
[echo] Handling RenderScript files...
[renderscript] No RenderScript files to compile.
[echo] ----------
[echo] Handling Resources...
[aapt] No changed resources. R.java and Manifest.java untouched.
[echo] ----------
[echo] Handling BuildConfig class...
[buildconfig] Build type changed: Generating new BuildConfig class.
-pre-compile:
-compile:
[javac] Compiling 12 source files to ~/Workspace/Workspaces/workspace-indigo/MyApp/bin/classes
[echo] Creating library output jar file...
[jar] Building jar: ~/Workspace/Workspaces/workspace-indigo/MyApp/bin/classes.jar
-post-compile:
-obfuscate:
[delete] Deleting: ~/Workspace/Workspaces/workspace-indigo/MyApp/bin/proguard/original.jar
[jar] Building jar: ~/Workspace/Workspaces/workspace-indigo/MyApp/bin/proguard/original.jar
[proguard] ProGuard, version 4.7
[proguard] Reading input...
[proguard] Reading program jar [~/Workspace/Workspaces/workspace-indigo/MyApp/bin/proguard/original.jar]
[proguard] Reading program jar [~/Workspace/Workspaces/workspace-indigo/CommonComponents/bin/classes.jar]
[proguard] Reading program jar [~/Workspace/Workspaces/workspace-indigo/exampleLib/bin/classes.jar]
[proguard] Reading program jar [~/Workspace/Workspaces/workspace-indigo/Bfw/bin/classes.jar]
[proguard] Reading program jar [/Developer/Java/android-sdk-macosx/tools/support/annotations.jar]
[proguard] Reading program jar [~/Workspace/Workspaces/workspace-indigo/MyApp/libs/android-support-v4.jar]
[proguard] Reading library jar [/Developer/Java/android-sdk-macosx/platforms/android-10/android.jar]
[proguard] Reading library jar [/Developer/Java/android-sdk-macosx/add-ons/addon-real3d-lge-10/libs/real3d.jar]
[proguard] Initializing...
[proguard] Warning: com.example.ApplicationBase: can't find referenced class com.example.lib.R$string
[proguard] Warning: com.example.ApplicationBase: can't find referenced class com.example.lib.R$string
[proguard] Warning: com.example.ApplicationBase: can't find referenced class com.example.lib.R$string
[proguard] Warning: com.example.ApplicationBase: can't find referenced class com.example.lib.R$string
[proguard] Warning: com.example.ApplicationBase: can't find referenced class com.example.lib.R$string
[proguard] Warning: com.example.ApplicationBase: can't find referenced class com.example.lib.R$string
[proguard] Warning: com.example.ApplicationBase: can't find referenced class com.example.lib.R
[proguard] Warning: com.example.common.HelpDialog: can't find referenced class com.example.common.R$string
[proguard] Warning: com.example.common.HelpDialog: can't find referenced class com.example.common.R$string
[proguard] Warning: com.example.common.HelpDialog: can't find referenced class com.example.common.R
[proguard] Warning: com.example.common.WebDialog: can't find referenced class com.example.common.R$layout
[proguard] Warning: com.example.common.WebDialog: can't find referenced class com.example.common.R$id
[proguard] Warning: com.example.common.WebDialog: can't find referenced class com.example.common.R$string
[proguard] Warning: com.example.common.WebDialog: can't find referenced class com.example.common.R$layout
[proguard] Warning: com.example.common.WebDialog: can't find referenced class com.example.common.R$id
[proguard] Warning: com.example.common.WebDialog: can't find referenced class com.example.common.R$string
[proguard] Warning: com.example.common.WebDialog: can't find referenced class com.example.common.R
[proguard] Warning: com.example.common.WebDialog$1: can't find referenced class com.example.common.R$string
[proguard] Warning: com.example.common.WebDialog$1: can't find referenced class com.example.common.R$string
[proguard] Warning: com.example.common.WebDialog$1: can't find referenced class com.example.common.R
[proguard] Warning: com.example.dlg.InfoDialogActivity: can't find referenced class com.example.lib.R$layout
[proguard] Warning: com.example.dlg.InfoDialogActivity: can't find referenced class com.example.lib.R$layout
[proguard] Warning: com.example.dlg.InfoDialogActivity: can't find referenced class com.example.lib.R
[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] Note: there were 2 references to unknown classes.
[proguard] You should check your configuration for typos.
[proguard] Warning: there were 23 unresolved references to classes or interfaces.
[proguard] You may need to specify additional library jars (using '-libraryjars').
BUILD FAILED
/Developer/Java/android-sdk-macosx/tools/ant/build.xml:570: The following error occurred while executing this line:
/Developer/Java/android-sdk-macosx/tools/ant/build.xml:834: Please correct the above warnings first.
项目设置对我来说似乎没问题,因为'ant debug'编译没有错误。 包名称已更改为com.example,我的用户目录更改为上面列表中的〜/ xy
我在网上搜索了这个问题,我在stackoverflow上发现了很多帖子,但是没有人帮助我解决这个问题,希望有人能帮助我,尽管这是我的第一个问题。 感谢
答案 0 :(得分:3)
事实证明,应用程序库构建文件已打开proguard混淆,通过将其关闭,在构建免费和完整的应用程序存根时找到所有符号。