Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么启用proguard时ant构建失败?_Android_Ant - Fatal编程技术网

Android 为什么启用proguard时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

我将标准生成的build.xml文件用于ant构建。 当我键入
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,正在寻找正在崩溃的优化的禁用。