Google已经发布了Android Studio 2.1的Android开发者的新JACK编译器的testing版本。 我的问题是,我们如何使用JACK为APK启用混淆处理? 下面的文章说JACK在本地执行混淆,并且不需要Proguard: 用Jack编译 而下面的文章说JACK使用Proguardconfiguration文件(即.pro文件)来执行模糊处理: 实验新的Android工具链 – 杰克和吉尔 。 它也是这样说的 在这个过程中,Jack还处理任何请求的代码缩小 (缩小和/或混淆 )。 这到底是什么意思? 我们是否必须使用minifyEnabled选项并定义包含Proguard选项的.pro文件? 综上所述: 我们究竟如何使用JACK启用混淆? 我们可以绕过Proguard的使用,还是Proguard在混淆处理中扮演一个事实上的angular色,即使我们用JACK编译? JACK目前是否支持混淆,是否可以在Android Studio的稳定(即非beta / canary)版本中使用? 注意: 我已经提到以下post: 如何在android studio中启用Jack(Java Android编译器工具包) 。 错误:Jack需要支持Java 8语言function 。 更多参考文献 杰克和吉尔在X86上的介绍 。 杰克和吉尔的黑暗面 。 Java 8语言特性 。 更新: Matt Insko的答案是有帮助的,但是我想要更多的细节,以及更精确,规范的答案。
我试图在我的Xamarin.Android项目中使用Proguard,但编译失败,错误Unsupported class version number [52.0] (maximum 51.0, Java 1.7) 我从这两个 问题中看到,它可能是Java 7和Java 8之间的不匹配,更确切地说,某些版本的proguard不支持Java 8.但是,在Xamarin首选项 – > SDK位置中,Java SDK指向JDK 7: /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home 有什么地方可以更精确地configurationproguard吗? 任何其他的想法? 这里是失败日志: java.io.IOException:无法读取[/Library/Frameworks/Xamarin.Android.framework/Versions/7.0.0-18/lib/xbuild-frameworks/MonoAndroid/v7.0/mono.android.jar](Can在proguard.InputReader.readInput(InputReader.java:230)at proguard.InputReader.readInput()方法类[android / app / ActivityTracker.class](不支持的类版本号[52.0](最大51.0,Java 1.7))) InputReader.java:200)在proguard.InputReader.readInput(InputReader.java:178)在proguard.InputReader.execute(InputReader.java:78)在proguard.ProGuard.readInput(ProGuard.java:196)在proguard.ProGuard。执行(ProGuard.java:78)在proguard.ProGuard.main(ProGuard.java:492)导致:java.io.IOException:无法处理类[android / app / ActivityTracker.class](不支持的类版本号[ 52.0](最大51.0,Java 1.7))在proguard.io.ClassReader.read(ClassReader.java:112)在proguard.io.FilteredDataEntryReader.read(FilteredDataEntryReader.java:87)在proguard.io.JarReader.read(JarReader .java:65)在proguard.io.Director ypump.readFiles(DirectoryPump.java:65)在proguard.io.DirectoryPump.pumpDataEntries(DirectoryPump.java:53)在proguard.InputReader.readInput(InputReader.java:226)… 6 more引起:java.lang。 UnsupportedOperationException:在proguard.classfile.io.ProgramClassReader.visitProgramClass(ProgramClassReader.java:88)上的proguard.classfile.util.ClassUtil.checkVersionNumbers(ClassUtil.java:140)处的不支持的类版本号[52.0](最大值51.0,Java 1.7)在proguard.classfile.ProgramClass.accept(ProgramClass.java:346)在proguard.io.ClassReader.read(ClassReader.java:91)… 11更多 9警告1错误(s)
我不知道如何描述这个问题。 我搜查了很多,但我没有find任何解决scheme。 此解决scheme也没有帮助我-keepattributes EnclosingMethod : dependencies { compile project(':libraries:material-drawer') compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.2.0' compile 'com.android.support:recyclerview-v7:23.2.0' compile 'com.android.support:design:23.2.0' compile 'com.google.code.gson:gson:2.4' compile 'com.mcxiaoke.volley:library:1.0.19' compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.squareup.okhttp:okhttp:2.4.0' compile 'de.greenrobot:eventbus:2.4.0' compile 'com.commit451:PhotoView:1.2.4' compile 'com.nineoldandroids:library:2.4.0' compile 'com.viewpagerindicator:viewpagerindicator:2.4.3' compile('com.github.afollestad.material-dialogs:commons:0.8.5.6@aar') { transitive = true } compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') { transitive = true; } } jar文件夹包含ormlite-android-4.48.jar和ormlite-core-4.48.jar 。 Progaurd文件: -keepattributes […]
我运行我的Android项目的ProGuard并得到以下警告: Note: duplicate definition of library class [org.apache.http.conn.scheme.HostNameResolver] Note: duplicate definition of library class [org.apache.http.conn.scheme.SocketFactory] Note: duplicate definition of library class [org.apache.http.conn.ConnectTimeoutException] Note: duplicate definition of library class [org.apache.http.params.HttpParams] Note: duplicate definition of library class [android.net.http.SslCertificate$DName] Note: duplicate definition of library class [android.net.http.SslError] Note: duplicate definition of library class [android.net.http.SslCertificate] Note: there were 7 duplicate […]
每当我运行我的项目时,我得到这个错误。 我可以做一个清洁,然后再次运行,它的工作原理。 但这不是一个最佳解决scheme。 有任何想法吗? Error:Execution failed for task ':android:transformClassesAndResourcesWithProguardForRelease'. java.io.IOException:未能将android \ build \ intermediates \ transforms \ proguard \ release \ folders \ 3 \ 1f \ main \ classes.jar重命名为android \ build \ intermediates \ transforms \ proguard \ release \ jars \ 3 \ 1f \ classes.jar