Tag: proguard

ProGuard不会使JAR与依赖项混淆

我有一个项目与下面给出的pom.xml文件。 当我发出命令mvn clean compile assembly:single install我希望Maven生成一个JAR,其中包含 所有的依赖和 我的代码的混淆版本。 它不起作用 – 我的代码在“jar-with-dependencies”文件中没有被混淆。 当我运行mvn clean compile install ,生成的文件包含我的应用程序的模糊代码,但没有依赖项。 为了拥有包含所有依赖项和混淆代码的JAR文件,我该怎么办? 4.0.0 com.mycompany myproduct 1.0-SNAPSHOT jar 2.3.5 org.spongepowered spongeapi 3.0.0 provided junit junit 4.12 org.easytesting fest-assert-core 2.0M8 test org.mockito mockito-core 1.10.19 test org.restlet.jse org.restlet ${restlet-version} org.restlet.jse org.restlet.ext.jackson ${restlet-version} com.googlecode.json-simple json-simple 1.1.1 ${project.basedir}/src/main/resources true org.apache.maven.plugins maven-compiler-plugin 3.3 1.8 1.8 org.codehaus.mojo […]

设置ProGuard以模糊局部变量和参数

我似乎找不到混淆局部变量的设置,在一个被混淆的类的方法内部。 这是我反编译的一个类的摘录,其中有一些明显缺失的部分。 理想情况下,方法和局部变量的参数也会被混淆。 public class eA extends gu { private final gt a; private final gt b; public static boolean a(fy game) { boolean playerDead = game.k().j() <= 0; boolean enemyDead = game.g().a().size 0; return (playerDead) || ((!wavesRemain) && (enemyDead)); } public eA(gt gameState, gt boardState) { this.b = gameState; this.a = boardState; } public […]

Proguard Interface类,里面有另一个接口

我有一个接口类A,在A类中,我有另一个接口BI正在尝试进行程序包,当我在gradle中构建它时,我得到了 以下错误 symbol: class B location: interface A ../Progaurd/android/trunk/sample/module-c/src/main/java/com/c/db/C.java:24: error: cannot find symbol public class C implements B 实际课程如下 public interface A{ public interface B{ … } } 我已尝试使用proguard-project.txt文件中的以下行 -keep class * implements com.sample.manager.storage.AB 请帮我….

始终在Eclipse中使用Android dex’ing之前运行proguard

有没有办法让Eclipse在尝试运行Android应用程序之前始终在dex’ing之前运行proguard? 例如,某种方式无缝插入它作为构建步骤? 默认情况下它会在导出时运行,但我需要它始终运行,即使只是从菜单/键盘执行正常的“运行”或“调试”。 对于上下文,这是相关的原因是我遇到了“太多的操作码/没有扩展的操作码”(http://code.google.com/p/android/issues/detail?id=26203)问题我在Eclipse中的构建。 这对于ant构建来说不是问题,因为它们运行proguard,它会删除所有未使用的代码。 到目前为止,我一直在手动剥离我的第三方依赖项中的未使用的东西,但它有点荒谬。 此外,作为一个附带好处,它应该大大加快我的构建速度,因为只有收缩的proguard运行方式比dex’ing更快,它删除了大部分需要dex’ed的代码。

用弹簧处理proguard有困难

我有一个使用spring annotations extensivley的Web应用程序,我有我的proguard配置,如下所示: -printmapping out.map -dontoptimize -keepdirectories -renamesourcefileattribute SourceFile -keepattributes Exceptions,SourceFile,LineNumberTable,*Annotation* -adaptresourcefilenames **.xsd,**.wsdl,**.xml,**.properties,**.gif,**.jpg,**.png -adaptresourcefilecontents **.xsd,**.wsdl,**.xml,**.properties,META-INF/MANIFEST.MF -dontshrink -keepclassmembernames class * { java.lang.Class class$(java.lang.String); java.lang.Class class$(java.lang.String, boolean); } -keepclassmembers enum * { public static **[] values(); public static ** valueOf(java.lang.String); } -keepclassmembers class * implements java.io.Serializable { static final long serialVersionUID; private static final java.io.ObjectStreamField[] serialPersistentFields; private […]

如何告诉proguard保持枚举常量和字段

我试着模糊我们的web应用程序,它使用spring,jaxb并依赖于注释和reflection。 我在互联网上应用了许多食谱来保存一些类,属性,注释和枚举。 但是枚举仍有问题。 我可以保存枚举常量应用来自http://proguard.sourceforge.net/manual/examples.html#enumerations的配置: -keepclassmembers,allowoptimization enum * { public static **[] values(); public static ** valueOf(java.lang.String); } 乍一看,它看起来像工作解决方案和常量保留,因此( Class.getEnumConstants() )返回正确的值列表。 但是当我尝试通过任何名称检索字段时,我得到了NoSuchFieldException。 问题来自jaxbreflection导航器 ,请看代码: public Field[] getEnumConstants(Class clazz) { try { Object[] values = clazz.getEnumConstants(); Field[] fields = new Field[values.length]; for (int i = 0; i < values.length; i++) { fields[i] = clazz.getField(((Enum) values[i]).name()); } return […]

使用Java 7的ProGuard + Maven

我正在尝试将ProGuard作为Maven构建过程的一部分。 问题是官方的Maven插件使用的是ProGuard 4.3,它不支持Java 7.有没有简单的方法让插件使用Proguard 4.8? 我已经尝试为插件指定依赖项,但ProGuard似乎有一个新的Maven模块结构(proguard-base,proguard-parent等),所以插件不能使用任何版本> 4.4。 这是我目前的pom看起来如何: com.pyx4me proguard-maven-plugin package proguard 4.8 true -allowaccessmodification -keep public class com.degoo.ui.ClientBackendStarter { public *; public static *; } ${project.build.finalName}.jar ${project.build.finalName}-small.jar ${project.build.directory} ${java.home}/lib/rt.jar ${java.home}/lib/jsse.jar false net.sf.proguard proguard 4.8 runtime 有什么建议么?

如何排除由proguard保留的类

我在proguard配置中添加了以下行: -keep class com.mypackage.** {*;} 但是现在proguard没有从结果中删除我的类com.mypackage.BuildConfig.class 。 我希望它被删除。 如何排除某个特定的课程? 谢谢

Java:如何使用自定义Ant build.xml在项目中集成ProGuard

我有简单的java项目,它指的是两(2)个库jar文件。 想要整合ProGuard。 这是我当前的build.xml: Samples Library

阿卡。 Android系统。 NoSuchMethodException:

当我在Android上运行使用Akka的应用程序时,我收到以下exception: 04-29 16:13:06.235: E/AndroidRuntime(8968): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp/com.myapp.MyActivity}: java.lang.NoSuchMethodException: [interface com.typesafe.config.Config, interface akka.event.LoggingAdapter, interface java.util.concurrent.ThreadFactory] 在actor系统创建期间抛出此exception: Props props1 = Props.create(MyActor.class); ActorSystem system = ActorSystem.create(“MySystem”); 我假设proguard删除了一个构造函数,所以我将以下行添加到我的proguard.cfg中: -keep class com.typesafe.** { *; } 但它没有帮助。 我究竟做错了什么?