Android 为什么启用proguard时ant构建失败?
我将标准生成的build.xml文件用于ant构建。 当我键入Android 为什么启用proguard时ant构建失败?,android,ant,Android,Ant,我将标准生成的build.xml文件用于ant构建。 当我键入antdebug时,它会成功构建,但当我运行antrelease命令时,它会失败。我猜它与proguard规则有关,但是它在eclipse上以发布模式成功构建 如何将其配置为与proguard一起正常工作 这是我得到的一个例外 [proguard]优化 生成失败C:\android\sdk\tools\ant\BUILD.xml:875: java.lang.IllegalArgumentException:值不是引用值 [progu
antdebug
时,它会成功构建,但当我运行antrelease
命令时,它会失败。我猜它与proguard规则有关,但是它在eclipse上以发布模式成功构建
如何将其配置为与proguard一起正常工作
这是我得到的一个例外
[proguard]优化
生成失败C:\android\sdk\tools\ant\BUILD.xml:875:
java.lang.IllegalArgumentException:值不是引用值
[proguard.evaluation.value.Instru-ctionOffsetValue]
位于proguard.evaluation.value.value.referenceValue(value.java:97)
在proguard.optimize.evaluation.SimpleNumUseSimplier.isPoppingSimpleEnum(SimpleNumUseSimplier.java:530)
在proguard.optimize.evaluation.simplenumusesimplizer.ispoppingsimplenum(simplenumusesimplizer.java:520)
在proguard.optimize.evaluation.SimpleNumUseSimplier.visitVariableInstruction(SimpleNumUseSimplier.java:229)
位于proguard.classfile.instruction.VariableInstruction.accept(VariableInstruction.java:306)
在proguard.optimize.evaluation.SimpleNumUseSimplier.visitCodeAttribute(SimpleNumUseSimplier.java:131)中
在proguard.classfile.attribute.CodeAttribute.accept处(CodeAttribute.java:101)
在proguard.classfile.ProgramMethod.attributesAccept(ProgramMethod.java:79)
位于proguard.classfile.attribute.visitor.AllAttributeVisitor.visitProgramMember(AllAttributeVisitor.java:95)
位于proguard.classfile.util.SimplifiedVisitor.visitProgramMethod(SimplifiedVisitor.java:91)
在proguard.classfile.ProgramMethod.accept(ProgramMethod.java:71)
位于proguard.classfile.ProgramClass.methodsAccept(ProgramClass.java:504)
位于proguard.classfile.visitor.AllMethodVisitor.visitProgramClass(AllMethodVisitor.java:47)
在proguard.classfile.ProgramClass.accept(ProgramClass.java:346)中
位于proguard.classfile.ClassPool.classesAccept(ClassPool.java:124)
在proguard.optimize.Optimizer.execute(Optimizer.java:373)
在proguard.proguard.optimize(proguard.java:306)
在proguard.proguard.execute(proguard.java:115)
在proguard.ant.ProGuardTask.execute处(ProGuardTask.java:316)
位于org.apache.tools.ant.UnknowneElement.execute(unknowneElement.java:292)
位于sun.reflect.GeneratedMethodAccessor4.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:606)
位于org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
位于org.apache.tools.ant.Task.perform(Task.java:348)
位于org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
位于com.android.ant.IfElseTask.execute(IfElseTask.java:120)
位于org.apache.tools.ant.UnknowneElement.execute(unknowneElement.java:292)
位于sun.reflect.GeneratedMethodAccessor4.invoke(未知源)
在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)中
位于java.lang.reflect.Method.invoke(Method.java:606)
位于org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
位于org.apache.tools.ant.Task.perform(Task.java:348)
位于org.apache.tools.ant.Target.execute(Target.java:435)
位于org.apache.tools.ant.Target.performTasks(Target.java:456)
位于org.apache.tools.ant.Project.executeSortedTargets(Project.java:1393)
位于org.apache.tools.ant.Project.executeTarget(Project.java:1364)
位于org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
位于org.apache.tools.ant.Project.executeTargets(Project.java:1248)
位于org.apache.tools.ant.Main.runBuild(Main.java:851)
位于org.apache.tools.ant.Main.startAnt(Main.java:235)
位于org.apache.tools.ant.launch.Launcher.run(Launcher.java:280)
位于org.apache.tools.ant.launch.Launcher.main(Launcher.java:109)
我找到了解决办法
这个问题与我更新到4.11的proguard版本有关
恢复到4.7并开始工作 我找到了解决办法
这个问题与我更新到4.11的proguard版本有关
恢复到4.7并开始工作 这是ProGuard 4.11版的一个bug 代替降级,另一种解决方案是关闭导致问题的特定优化 在proguard文件中包括此行:
-优化!class/unboxing/enum
这是ProGuard版本4.11的一个bug
代替降级,另一种解决方案是关闭导致问题的特定优化
在proguard文件中包括此行:
-优化!class/unboxing/enum
粘贴proguard.txt文件please@Pauland@Pauland还请注意,我将其与proguard-android-optimize一起使用。TXT请尝试仅使用proguard-android-optimize,要查看问题是否持续,请保存proguard.txt文件please@Pauland@Pauland还注意到,我将其与proguard-android-optimize一起使用。TXT尝试仅使用proguard android optimize,以查看问题是否仍然存在。回滚到4.7解决了我的问题。值得一提的是,我没有尝试4.7和4.11之间的版本。我也有同样的问题。回滚到4.7解决了我的问题。值得一提的是,我没有尝试4.7和4.11之间的版本。谢谢你,先生!刚刚遇到这个错误,正在寻找正在崩溃的优化的禁用。谢谢先生!刚刚遇到这个bug,正在寻找正在崩溃的优化的禁用。