一切正常,直到我proguard为止。这是我的proguard-project.txt-keepclasscom.j256.**-keepclassmembersclasscom.j256.**{*;}-keepenumcom.j256.**-keepclassmembersenumcom.j256.**{*;}-keepinterfacecom.j256.**-keepclassmembersinterfacecom.j256.**{*;}-keepclasscom.liba.carpool.db.**-keepclassmembersclasscom.liba.carpool.db
设置时minifyEnabledtrueuseProguardtrue在我的gradle中,我得到一个像这样的NullPointerException:java.lang.RuntimeException:UnabletostartactivityComponentInfo{com.jafari.farhad.ubazdidcontroller/com.jafari.farhad.ubazdidcontroller.LoginActivity}:java.lang.NullPointerExceptionatandroid.app.ActivityThread.performLaunc
根据这个链接:http://developer.android.com/guide/developing/tools/proguard.html,他们说:ProGuardmakesyourapplicationhardertoreverseengineer,itisimportantthatyouuseitwhenyourapplicationutilizesfeaturesthataresensitivetosecuritylikewhenyouareLicensingYourApplications.但这不是真的!我正在使用ADT17预览版4中包含的最新Proguard(4.7)。
build.gradle:buildTypes{release{minifyEnabledtrueshrinkResourcestrueproguardFilesgetDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'signingConfigsigningConfigs.SginConfig}}我不希望Proguard优化或混淆我的代码,因为它给我带来了很多麻烦。我只想删除日志调用并启用未使用资源的缩减。proguard-rules.pro:-assumenosideeffectsclas
我正在尝试为我的Android项目设置混淆器。我们在代码中使用了netty库的一些fragment,我想使用Proguard完全删除我知道没有使用的代码fragment。有没有什么方法可以告诉混淆器假设一个包(或类)从未被使用过,因此不应包含在输出JAR中?请注意,我不是在谈论从混淆中排除一些代码(这是-keep配置选项所做的),我在谈论完全删除来自输出的类。编辑:正如下面pst所建议的,我尝试使用-whyareyoukeeping参数来确定混淆器用来确定使用的类的代码路径。它不会更改数十个警告的输出。我还尝试按照pst的建议在-outjars上使用文件过滤器。这也导致没有任何变化,因
我最近将我的Android项目从Eclipse迁移到了AndroidStudio。AndroidStudio创建的调试版应用在设备上运行良好,但发布版在启动时崩溃。这是我的应用程序的build.gradle文件:applyplugin:'com.android.application'applyplugin:'com.google.gms.google-services'android{compileSdkVersion23buildToolsVersion"23.0.2"defaultConfig{applicationId"com.example.myapp"minSdkVersi
将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以我难以预测的方式删除代码。因此很可能导致我引入错误。这让我相信我需要编写实现全面覆盖的验收/平台测试,因为在任何时候都可能缺少类。其他人有