【发布时间】:2014-11-13 23:48:25
【问题描述】:
我有一个相当大的项目,其中包含一个精心制作的 proguard.cfg 。
- 这个项目在eclipse下构建OK,proguard运行无误,应用运行完美,这几个月来一直是我的正常工作流程。
我正在尝试使用 ant 从命令行构建它。
我已经更新了 build.xml 等项目及其库项目使用
android update project -p .
android update project -s --target android-17 -p .
- 调试版
ant debug构建成功 - 但是,
ant release失败了proguard,抱怨缺少课程。
据我所知(弹出许多非致命警告),这些问题与我的(数千个)类之一中缺少内部类以及依赖库项目的缺少 R(资源)有关。这很奇怪,这两件事都存在,图书馆项目从 eclipse 和 ant 构建得很好,而我不知道的内部类,父类非常琐碎。
为什么它是在eclipse下构建而不是使用命令行?更新的构建脚本不应该产生相同的结果吗?
Proguard:与 LIbrary 项目资源相关的错误
[proguard] Warning: com.jeremyfeinstein.slidingmenu.lib.CustomViewBehind: can't find referenced class com.jeremyfeinstein.slidingmenu.lib.R$id
[proguard] Warning: com.jeremyfeinstein.slidingmenu.lib.CustomViewBehind: can't find referenced class com.jeremyfeinstein.slidingmenu.lib.R$id
[proguard] Warning: com.jeremyfeinstein.slidingmenu.lib.CustomViewBehind: can't find referenced class com.jeremyfeinstein.slidingmenu.lib.R
[proguard] Warning: com.jeremyfeinstein.slidingmenu.lib.SlidingMenu: can't find referenced class com.jeremyfeinstein.slidingmenu.lib.R$styleable
[proguard] Warning: com.jeremyfeinstein.slidingmenu.lib.SlidingMenu: can't find referenced class com.jeremyfeinstein.slidingmenu.lib.R$styleable
[proguard] Warning: com.jeremyfeinstein.slidingmenu.lib.SlidingMenu: can't find referenced class com.jeremyfeinstein.slidingmenu.lib.R
[proguard] Warning: com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivityHelper: can't find referenced class com.jeremyfeinstein.slidingmenu.lib.R$layout
[proguard] Warning: com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivityHelper: can't find referenced class com.jeremyfeinstein.slidingmenu.lib.R$layout
[proguard] Warning: com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivityHelper: can't find referenced class com.jeremyfeinstein.slidingmenu.lib.R
Proguard:未找到与内部类相关的
[proguard] Warning: com.regaliz.gui.layouts.FunqRootLayout$2: can't find referenced class com.regaliz.gui.layouts.FunqRootLayout$1
[proguard] Warning: com.regaliz.gui.layouts.FunqRootLayout$3: can't find referenced class com.regaliz.gui.layouts.FunqRootLayout$1
[proguard] Warning: com.regaliz.gui.layouts.FunqRootLayout$SimpleAnimationListener: can't find referenced class com.regaliz.gui.layouts.FunqRootLayout$1
[proguard] Warning: com.regaliz.gui.layouts.FunqRootLayout$SimpleAnimationListener: can't find referenced class com.regaliz.gui.layouts.FunqRootLayout$1
[proguard] Warning: com.regaliz.gui.layouts.FunqRootLayout$SimpleAnimationListener: can't find referenced class com.regaliz.gui.layouts.FunqRootLayout$1
【问题讨论】:
-
也许你应该关闭一些lint错误检查的选项。我在gradle中遇到过类似的情况(在gradle中,我将
lintOptions.abortOnError和lintOptions.checkReleaseBuilds设置为false)。Eclipse可能会关闭lint导出apk时错误检查,所以没问题。 -
虽然这些错误看起来更与 proguard 相关,但您说得有道理,事实上,在 eclipse 下,我几乎关闭了 LINT,因为每次修改资源时它都会使我的构建时间飙升。你知道在Ant下怎么关掉吗?
-
很抱歉我不知道Ant的用法。也许您可以就此提出一个新问题...
标签: android eclipse ant proguard release-mode