将Dexguard从7.0.12更新到7.1.22后,我在Enum开关上遇到崩溃。只有当Dexguard在我们的项目上运行时才会发生这种情况(我想这是由Proguard问题引起的)。如果我使用硬编码值,则不会发生崩溃。当然,我想避免使用硬编码值。崩溃发生的崩溃如下java.lang.NoClassDefFoundError:Failedresolutionof:Lif;这发生在声明switch(type){的行上(见下文)示例应用程序崩溃的一些示例代码(假定MyEnum当然是枚举):MyEnumtype=MyEnum.SomeValue;switch(type){caseSomeVal
使用混淆器似乎很困惑。我有兴趣简单地混淆我的应用程序中的一些包。我在Windows中使用最新的AndroidAPI设置了Eclipse。我已经添加了默认的proguard.cfg,它可以毫无问题地构建我的应用程序,但是当我运行该应用程序时,该应用程序的某些功能不再起作用。它只是做一些奇怪的事情。此外,每当我创建一个新项目时,它都不会自动创建proguard.cfg,我不知道为什么。但是我可以在android-sdk-windows\tools\lib我真正感兴趣的是在我的代码中混淆某些包甚至几个类。如果我能做到这一点,我会很满足。有什么简单的方法可以只说“混淆这个”。你们可以分享任何基
我在project.properties中启用了混淆器:proguard.config=proguard.cfg我的proguard.cfg没有禁用混淆。但没有任何混淆。我用运行项目构建Ant发布。铃响了吗?-optimizationpasses5-dontusemixedcaseclassnames-dontskipnonpubliclibraryclasses-dontpreverify-verbose-optimizations!code/simplification/arithmetic,!field/,!class/merging/-keeppublicclass*exten
由于Android上的Scala存在问题,我最近需要在Android上引入ProGuard。我需要ProGuard的缩减功能,它会删除假定未使用的类。我非常担心删除类对可测试性的影响。目前,我编写在主机上运行的单元测试和在Android平台上运行完全集成应用程序的验收测试。通常,我会对相对完整的单元测试覆盖率和参差不齐的验收测试覆盖率感到满意。然而,鉴于我在我的代码中大量使用Guice依赖注入(inject),到目前为止,我的经验是ProGuard以我难以预测的方式删除代码。因此很可能导致我引入错误。这让我相信我需要编写实现全面覆盖的验收/平台测试,因为在任何时候都可能缺少类。其他人有
我有一个基于Android的应用程序,它使用Rest服务连接到GoogleAppEngine,该应用程序运行完美,直到它在发布之前通过ProGuard进行了混淆处理。运行混淆后的应用程序时,LogCat报错为:Unabletoconverta[application/json,UTF-8]representationintoanobjectofclasscom.enterprisemk.android.bcw.bincollection.WasteCollectionAreasContainerorg.codehaus.jackson.map.JsonMappingException:
我遇到了一个问题,我在开发人员控制台中的堆栈跟踪与代码不匹配。行号明显关闭,并且必须在跟踪中的方法将不存在于控制台的跟踪中。例如(简化的控制台跟踪):atgetBitmapSizeatgetBitmapBytesatonActivityResult但是在代码中它必须采用这条路径:onActivitResult->handleSaveImage->getBitmapBytes->getBitmapSize这段代码多年来没有改变,所以这不是使用错误的mapping.txt的问题。以某种方式应用混淆器会删除应用程序中的结构。那可能吗?不会映射回去吗?在打开proguard之前,我从未在堆栈跟
我有一个Android应用程序,我不想对其进行任何有关优化/混淆等的操作。我删除了(自动生成的)proguard配置文件(proguard.cfg),但我认为我的库项目的文件仍然被混淆,因为在崩溃报告中我没有看到行号-Unknown改为显示来源。如何完全关闭混淆器?此外,我如何验证它确实已关闭? 最佳答案 设置这个minifyEnabledfalse在你的应用build.gradlehttps://stackoverflow.com/a/39051307/2002079 关于androi
我正在尝试在我的包含Unity3D的应用程序上运行混淆器。目前proguard无法尝试处理unity-classes.jar,唯一的解决方法是自己构建proguard并应用补丁(有关错误报告,请参见thislink)。所以,我现在有了自己的自定义proguard.jar,但是我怎样才能让android插件使用它呢?对于eclipse,这只是替换AndroidSDK目录中的proguard.jar的问题,但这不再适用于AndroidStudio/Gradle。事实上,我可以从tools/proguard/lib/中删除proguard文件,它仍然可以运行!如何让AndroidStudio
我的应用程序处于发布前阶段,在这里我开始编译发布版本assembleRelease而不是assembleDebug。然而,混淆破坏了事情,很难解释什么是什么。即使行号保持变量类不可读,调试也几乎是不可能的。虽然发行版本不稳定,但我希望减轻混淆的麻烦,但由于完全混淆,它仍应表现出来。通常,ProGuarded版本会将名称转换为net.twisterrob.app.pack.MyClass至b.a.c.b.a如果它们遇到我们没有保留其名称的类,则反射和Android布局/菜单资源可能会中断。能够混淆代码,对于预发布测试确实很有帮助,但是“不是那么多”,例如将名称转换为net.twister
我正在使用TeamCity构建应用程序版本并将其上传到HockeyApp。我只想在特定风格上启用混淆器,并且在teamcity上构建并在HockeyApp上上传时,这可能吗?现在我在gradle文件中定义了变量:defrunProguard=false并在我的口味中将其设置为false或true,然后在我的构建类型中:if(project.hasProperty('teamcity')&&runProguard.toBoolean()){minifyEnabledtrue}else{minifyEnabledfalse}但它在teamcity上不起作用,我在HockeyApp上有没有p