Articles of android proguard

proguard-android.txt和proguard-rules.pro有什么区别? – Android

在我的buildType我看到这样的: buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } 我有一些问题: 为什么有两个文件? 他们有什么区别? 我应该在哪里写规则? 谢谢

Retrofit2 proguard删除参数

我使用改进2和在我的项目中使用proguard。 我的proguard: -dontwarn retrofit2.** -keep class retrofit2.** { *; } -keepattributes Signature -keepattributes Exceptions -keepclassmembers class fqcn.of.javascript.interface.for.webview { public *; } # Begin twitter 4j. -dontwarn twitter4j.** -keep class twitter4j.conf.PropertyConfigurationFactory -keep class twitter4j.** { *; } # End twitter 4j. # Start androidsocialnetworks -keep class com.androidsocialnetworks.lib.** { *; } # End androidsocialnetworks. # Google api […]

Proguard问题与Gradle 3.0.0

我正在尝试使用ProGuard和新的Gradle 3.0.0版本创build一个APK。 我在我的ProGuardconfiguration文件中忽略了一些我认为被忽略的类的警告。 相同的configuration适用于Gradle 2.3.3,但似乎在3.0.0上打破。 警告非常多,几乎没有读取ProGuardconfiguration。 我的build.gradle buildscript { repositories { mavenCentral() jcenter() google() } dependencies { classpath 'com.android.tools.build:gradle:2.3.3' classpath 'com.google.gms:google-services:3.0.0' classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5' classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.2' } } allprojects { repositories { jcenter() maven { url 'https://jitpack.io' } maven { url 'https://maven.google.com' } } } android{ buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' signingConfig […]

Android Studio更新后,ProGuard无法按预期工作

由于我更新Android Studio版本1.2.1.1我有以下问题: 每当我构build我的应用程序的发行版本/构build版本时,我都会在调整库中得到一个NoClassDefFoundError ,作为库模块包含在项目中。 追踪: java.lang.NoClassDefFoundError: com.adjust.sdk.AdjustConfig at de.myapp.GlobalApp.prepareAdjust(GlobalApp.java:111) at de.myapp.GlobalApp.onCreate(GlobalApp.java:71) at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:999) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4151) at android.app.ActivityThread.access$1300(ActivityThread.java:130) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1255) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) 我的代码的相应部分: AdjustConfig config = new AdjustConfig(this, someString, otherString); 当我用minifyEnabled false;closuresProguard minifyEnabled false; 在我的build.gradle ,错误消失了。 我的proguard-rules.pro看起来像这样: -keepattributes ** -keep […]

有史以来最奇怪的Android错误 – 可能是ProGuard问题?

我甚至不知道该给什么称号,这太奇怪了。 我构build了一个使用ARGB-整数格式的颜色值的Android逻辑谜题 。 要在完成关卡时混合animation的颜色,我有以下function: public static int blend(int color1, int color2, double position) { if (position<0) position=0; if (position>1) position=1; int a = (color1 >>> 24) & 0xFF; int r = (color1 >>> 16) & 0xFF; int g = (color1 >>> 8) & 0xFF; int b = color1 & 0xFF; int da = ((color2 >>> […]

ProGuard导致应用程序滞后

我试图混淆与proguard的代码,所以我启用minify在发布构buildtypes: buildTypes { debug { minifyEnabled false } release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt') } } 但是,当我生成“释放apk”,并在我安装后,应用程序运行速度减慢(滞后)..为什么这种情况发生与minify启用? 这是我的依赖: dependencies { compile 'com.android.support:support-v4:25.3.1' compile 'com.android.support:recyclerview-v7:25.3.1' compile 'com.android.support:palette-v7:25.3.1' compile 'com.google.protobuf.nano:protobuf-javanano:3.0.0-alpha-2' compile 'com.jrummyapps:colorpicker:2.1.6' compile 'org.apache.commons:commons-lang3:3.4' compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support:design:25.3.1' compile project(':library') testCompile 'junit:junit:4.12' androidTestCompile 'com.android.support.test:runner:0.5' androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.2' androidTestCompile 'com.android.support:support-annotations:25.3.1' } 这是我的proguard-android.txt # This is a configuration file for […]

Google Play开发控制台在Stacktrace中显示类和方法名称

我有一个启用了Proguard(minifyenabled true)的应用程序,最近在Google Play开发者控制台中收到了崩溃报告。 当我看着它时,我看到了以下内容: 我很惊讶地发现第一行中的全部类和方法名称,因为Proguard已启用。 我以前总是看到这样的事情: 在com.myname.myapp.cf(未知来源) 我也很好奇行号是如何显示的,因为我不保留行编号在我的Proguardconfiguration文件(因此,为什么我通常在我的堆栈跟踪中看到“未知源”)。 我反编译我的.apk,窥视classes.dex文件,这一切看起来不错。 我find堆栈跟踪的第一行中引用的类,类名确实是模糊的,就像方法名一样。 现在,'MyActivity'(stacktrace的第2行)是我的应用程序的启动Activity,并且在Manifest中声明,所以我明白为什么它的名称没有被混淆,而'onConnected'方法不是我的(它来自Google Play游戏服务),所以,这也是可以的。 'MyMethodName' 在 onConnected中被调用,如下所示: @Override public void onConnected(Bundle arg0) { myClassObject.myMethodName(); //Where myClassObject is an instance of MyClassName } debugging设置为在我的build.gradle文件中禁用。 我不会将mapping.txtfile upload到Play控制台,我手动运行回溯以查看我的去混淆堆栈跟踪。 如果有人能帮助我理解为什么我在这里看到我的完整课程和方法名称,我将不胜感激。 我能做什么来防止这种情况?

在程序引用的proguard之后使用NoSuchMethodError崩溃

compile&proguard之前的源代码: public class IntentSession extends BaseIntentSession { @Override public void onResume() { super.onResume(); mExecutor.exec(getIntent(), this::finish); } } compile&proguard之后的反编译代码:(Decompiled with CFR 0_118) public class a extends superA { public void e() { super.e(); this.ca(this.j(), ba((a)this)); // the problematic code here } } 现在是compile&proguard之后的关键代码, b类的反编译代码: final class b implements ca { private aa; b (a a1) { […]

签署apk获得在proguard启用坠毁

我正在尝试在我的应用程序中使用proguard设置proguard为true,然后问题开始我正在导入lib当我使用proguard跟随这个 -keepnames class com.somepackage.*与我的包名称应用程序越来越崩溃时,我尝试使用已签名的apk。 我知道这是一个愚蠢的问题,但我坚持在这最后5小时不能find一个简单的解决scheme,因为我使用约20库。 我也跟着这个 。 Plz指导我如何做到这一点? 这是我的proguard规则类代码 -keepnames class beatbox.neelay.dummybeat.* -keepnames com.srx.widget.* -keepnames de.hdodenhof.circleimageview.CircleImageView.* -keepnames com.bumptech.glide.* -keepnames com.romainpiel.shimmer.* -keepnames com.vansuita.gaussianblur.GaussianBlur -keepnames com.antonyt.infiniteviewpager.InfinitePagerAdapter -keepnames com.antonyt.infiniteviewpager.InfiniteViewPager -keepnames com.eftimoff.viewpagertransformers.CubeOutTransformer -keepnames com.ms.square.android.glassview.GlassView -keepnames me.alexrs.fontpagertitlestrip.lib.FontPagerTitleStrip 我现在无法生成任何已签名的apk。 错误是。 Error:Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'. 作业失败,请参阅日志了解详情 任何提示将有所帮助。 控制台输出 FAILURE: Build failed with an exception. 出了什么问题:执行任务':app:transformClassesAndResourcesWithProguardForRelease'失败。 作业失败,请参阅日志了解详情 尝试:运行–stacktrace选项来获取堆栈跟踪。 运行–info或–debug选项来获得更多的日志输出。 编辑build.gradle apply plugin: […]

无法创build任务上传Proguard映射File.java.lang.IllegalStateException:解决configuration'androidTestAnnotationProcessor'

升级到Android Studio 3.0 Canary 3并使用它gradle-4.0-milestone-1-all由于评估依赖关系的新方法,当前插件在https://firebase.google.com/docs/crash/android#uploading_proguard_mapping_files_with_gradle no更长的工作,运行任务: $ gradlew app:firebaseUploadReleaseProguardMapping 产生错误: 无法创build任务上传Proguard映射File.java.lang.IllegalStateException:直接parsingconfiguration“androidTestAnnotationProcessor”是不允许的 任何build议,使这项工作?