大佬教程收集整理的这篇文章主要介绍了使用Jack API v01进行编译失败 – ConfigurationException:解析proguard-android.txt时出错,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我得到的信息是
Error:Execution Failed for task ':app:compileDebugJavaWithJack'. > java.io.IOException: com.android.jack.api.v01.ConfigurationException: Error while parsing 'C:\Users\Jonathan\ApPDAta\Local\Android\sdk\tools\proguard\proguard-android.txt':43
Gradle控制台输出
:app:compileDebugJavaWithJack Jack APIs v01 configuration Failed com.android.jack.api.v01.ConfigurationException: Error while parsing 'C:\Users\Jonathan\ApPDAta\Local\Android\sdk\tools\proguard\proguard-android.txt':43 at com.android.jack.api.v01.impl.Api01ConfigImpl.getTask(Api01ConfigImpl.java:77) at com.android.builder.core.AndroidBuilder.convertByteCodeUsingJackApis(AndroidBuilder.java:1914) at com.android.build.gradle.tasks.JackTask.doMinification(JackTask.java:148) at com.android.build.gradle.tasks.JackTask.access$000(JackTask.java:73) at com.android.build.gradle.tasks.JackTask$1.run(JackTask.java:112) at com.android.builder.tasks.Job.runTask(Job.java:51) at com.android.build.gradle.tasks.SimpleWorkQueue$EmptyThReadContext.runTask(SimpleWorkQueue.java:41) at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:223) at java.lang.Thread.run(Thread.java:745) Caused by: com.android.jack.IllegalOptionsException: Error while parsing 'C:\Users\Jonathan\ApPDAta\Local\Android\sdk\tools\proguard\proguard-android.txt':43 at com.android.jack.Jack.check(Jack.java:426) at com.android.jack.api.v01.impl.Api01ConfigImpl.getTask(Api01ConfigImpl.java:71) ... 8 more Caused by: com.android.jack.antlr.runtime.RecognitionException at com.android.jack.shrob.proguard.ProguardParser.recoverFromMismatchedToken(ProguardParser.java:138) at com.android.jack.antlr.runtime.baseRecognizer.match(BaseRecognizer.java:115) at com.android.jack.shrob.proguard.ProguardParser.arguments(ProguardParser.java:2967) at com.android.jack.shrob.proguard.ProguardParser.member(ProguardParser.java:2349) at com.android.jack.shrob.proguard.ProguardParser.members(ProguardParser.java:2174) at com.android.jack.shrob.proguard.ProguardParser.classSpecification(ProguardParser.java:1863) at com.android.jack.shrob.proguard.ProguardParser.prog(ProguardParser.java:388) at com.android.jack.shrob.proguard.GrAMMarActions.parse(GrAMMarActions.java:341) at com.android.jack.Jack.check(Jack.java:423) ... 9 more
ProGuard的-android.txt
这是一个标准的android SDK文件.我没有修改它.它不喜欢的行在下面的摘录中.
# Keep setters in Views so that animations can still work. # Setters for listeners can still be removed. # see http://proguard.sourceforge.net/manual/examples.html#beans -keepclassmembers public class * extends android.view.View { void set*(%); void set*(%,%); void set*(%,%,%); void set*(%[]); //LINE 43,THROWS ERROR void set*(**[]); void set*(!**Listener); % get*(); %[] get*(); **[] get*(); !**Listener get*(); }
Gradle.config
apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion '24rc2' defaultConfig { applicationId "com.company.myapplication" minSdkVersion 15 targetSdkVersion 23 versionCode 1 versionName "1.0" jackOptions { enabled true } } TESTBuildType "no_proguard" buildTypes { debug { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' debuggable true } release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' } no_proguard { minifyEnabled false debuggable true } } } dependencies { compile fileTree(dir: 'libs',include: ['*.jar']) TESTCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' compile 'com.android.support:support-v4:23.4.0' compile 'com.android.support:design:23.4.0' }
什么有效
如果我只是从proguardFiles列表中排除proguard-android.txt,那么当然构建当然会有效,但我不知道是否应该这样做;这会遗漏一些可能会破坏我的应用程序的重要内容吗?或者所有这些设置都是内置于杰克的新缩放器中的?
编辑
我尝试排除proguard-android.txt并进行测试.我的应用程序崩溃了,因为番石榴的某些部分被缩小/混淆了.
Gradle.config
apply plugin: 'com.android.application' android { compileSdkVersion 25 buildToolsVersion "25.0.2" defaultConfig { applicationId "com.test.myapplication" minSdkVersion 9 targetSdkVersion 25 versionCode 1 versionName "1.0" testinstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" vectorDrawableS.UseSupportLibrary = true jackOptions { enabled true } } compiLeoptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } TESTBuildType "no_proguard" buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' } debug { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-rules.pro' } no_proguard { minifyEnabled false } } } dependencies { compile fileTree(dir: 'libs',include: ['*.jar']) androidTESTCompile('com.android.support.test.espresso:espresso-core:2.2.2',{ exclude group: 'com.android.support',module: 'support-Annotations' }) compile 'com.android.support:appcompat-v7:25.2.0' compile 'com.android.support:design:25.2.0' compile 'com.android.support:support-vector-drawable:25.2.0' TESTCompile 'junit:junit:4.12' }
以上是大佬教程为你收集整理的使用Jack API v01进行编译失败 – ConfigurationException:解析proguard-android.txt时出错全部内容,希望文章能够帮你解决使用Jack API v01进行编译失败 – ConfigurationException:解析proguard-android.txt时出错所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。