【问题标题】:Proguard error when -optimizationpasses is above 2-optimizationpasses 高于 2 时出现 Proguard 错误
【发布时间】:2016-02-25 06:47:39
【问题描述】:

编辑:

这是由旧的 Proguard 版本(4.7)引起的。 5.2 不再发生


我使用 Proguard(在 Eclipse 中)来优化和混淆我的 Android 项目,但是发生了一些奇怪的事情。当我将-optimizationpasses设置为1或2时,没关系,但是当我设置3或以上时,我得到了这个错误

转换为 Dalvik 格式失败,出现错误 1

在 Eclipse 的错误日志视图中,我发现了“转换为 Dalvik 格式失败并出现错误 1”条目:它包含此堆栈跟踪

org.eclipse.core.runtime.CoreException: Conversion to Dalvik format failed with error 1
    at com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(ExportHelper.java:317)
    at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.doExport(ExportWizard.java:313)
    at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.access$0(ExportWizard.java:238)
    at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard$1.run(ExportWizard.java:223)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
Caused by: com.android.ide.eclipse.adt.internal.build.DexException: Conversion to Dalvik format failed with error 1
    at com.android.ide.eclipse.adt.internal.build.BuildHelper.executeDx(BuildHelper.java:825)
    at com.android.ide.eclipse.adt.internal.project.ExportHelper.exportReleaseApk(ExportHelper.java:274)
    at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.doExport(ExportWizard.java:313)
    at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard.access$0(ExportWizard.java:238)
    at com.android.ide.eclipse.adt.internal.wizards.export.ExportWizard$1.run(ExportWizard.java:223)
    at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)

这是关于优化的 Proguard 配置摘录:

-optimizations !code/simplification/arithmetic,!code/simplification/cast,!field/*,!class/merging/*
#-optimizationpasses 3 or above -> exception
-optimizationpasses 2
#-allowaccessmodification
-dontpreverify

问题:

  • 为什么当 -optimizationpasses 高于时 Proguard 会导致错误 2? (特别是因为android默认设置是5(在sdk 23 / M中)
  • 如何/在哪里可以找到有关此根本原因的更多详细信息 问题,并可能向 Proguard 团队报告错误?

感谢您的帮助

【问题讨论】:

  • 尝试将 proguard 更新到最新版本
  • 我正在使用最新的 Android SDK。你的意思是这还不够,我必须用最新的 Proguard “修补” Android sdk?
  • 我问的是proguard版本
  • 4.7 我不敢相信!当 ADT 时,Proguard 版本怎么没有更新.. 好吧,我会更新(到 5.2)并在这里发送一些反馈。感谢您的提示!
  • @ankitagrawal :升级到 Proguard 5.2 解决了这个问题。谢谢!

标签: android eclipse optimization proguard


【解决方案1】:

请更新到 Proguard 的最新版本,即从 4.7 到 5.2

这应该可以解决问题。

【讨论】:

  • 这就是问题所在!非常感谢 ankitagrawal :-)
猜你喜欢
  • 1970-01-01
  • 2018-12-17
  • 2018-04-12
  • 1970-01-01
  • 2016-10-28
  • 1970-01-01
  • 2014-07-28
  • 1970-01-01
  • 2019-07-14
相关资源
最近更新 更多