Android Studio 初试 Java 8
来源:互联网 发布:淘宝zara官方旗舰店 编辑:程序博客网 时间:2024/06/03 07:12
版本:
Android Studio 2.2.3
Gradle 3.2.1
Java 1.8.0_31
compileSdkVersion 25
buildToolsVersion 25.0.2
使用Java 8需要用到Jack工具链
因此在module中的build.gradle增加了如下配置:
defaultConfig { ... jackOptions { enabled true }}compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8}
Sync之后就能在代码中看到提示了
但是改用Jack进行编译之后打包就遇到了问题,debug包正常,而release包就会出现下面的报错
Information:Gradle tasks [:pub:assembleRelease]Error:com.android.jack.IllegalOptionsException: Error while parsing 'C:\..\pub\proguard-rules.pro':56Error:com.android.jack.antlr.runtime.RecognitionExceptionError:Execution failed for task ':pub:transformJackWithJackForRelease'.> com.android.build.api.transform.TransformException: com.android.jack.api.v01.ConfigurationException: Error while parsing 'C:\..\pub\proguard-rules.pro':56Information:BUILD FAILED
根据提示在proguard-rules.pro中找到问题出在这里
#忽略警告-ignorewarning
在看过Compiling with Jack之后了解到改用Jack之后proguard-rules.pro需作修改
把不支持的选项删掉之后再打包,出现了另一个报错
Information:Gradle tasks [:pub:assembleRelease]Error:Execution failed for task ':pub:transformJackWithJackForRelease'.> com.android.sched.scheduler.PlanError: 'SeedPrinter' need [OriginalNames, SeedMarker] but does not have [OriginalNames] in plan [JDefinedClassOrInterfaceAdapter: [OriginDigestAdder], PreProcessorApplier, MethodIdMerger, Remover, JDefinedClassOrInterfaceAdapter: [MethodIdDuplicateRemover], JDefinedClassOrInterfaceAdapter: [TypeGenericSignatureSplitter, TypeStringLiteralRefiner, SimpleNameRefiner, JMethodAdapter: [MethodGenericSignatureSplitter, ReflectionStringLiteralRefiner, MethodStringLiteralRefiner], JFieldAdapter: [FieldGenericSignatureSplitter, FieldStringLiteralRefiner]], JDefinedClassOrInterfaceAdapter: [JFieldAdapter: [FieldInitializerRemover, FieldContainerAnnotationMarkerAdder]], JDefinedClassOrInterfaceAdapter: [UsedEnumFieldCollector], JDefinedClassOrInterfaceAdapter: [VisibilityBridgeAdder, JMethodAdapter: [TryWithResourcesTransformer]], JDefinedClassOrInterfaceAdapter: [JMethodAdapter: [ImplicitBlocks, IncDecRemover, CompoundAssignmentRemover, ConcatRemover]], JDefinedClassOrInterfaceAdapter: [InnerAccessorGenerator], JDefinedClassOrInterfaceAdapter: [InnerAccessorAdder, JMethodAdapter: [FlowNormalizer, MethodContainerAnnotationMarkerAdder, SwitchStringSupport], JMethodAdapter: [FieldInitMethodCallRemover], FieldInitMethodRemover], JDefinedClassOrInterfaceAdapter: [SeedFinder, MultiDexAnnotationsFinder, RuntimeAnnotationFinder, AnnotatedFinder], JPackageAdapter: [SubClassOrInterfaceFinder], JDefinedClassOrInterfaceAdapter: [ShrinkAndMainDexTracer], JDefinedClassOrInterfaceAdapter: [TypeShrinker, JMethodAdapter: [MethodShrinker], JFieldAdapter: [FieldShrinker]], JDefinedClassOrInterfaceAdapter: [MainDexCollector], JDefinedClassOrInterfaceAdapter: [JMethodAdapter: [SwitchEnumSupport], UsedEnumFieldMarkerRemover, TypeContainerAnnotationMarkerAdder], JDefinedClassOrInterfaceAdapter: [JMethodAdapter: [EnumMappingMarkerRemover]], JPackageAdapter: [NameKeeper], ResourceRefiner, ResourceContentRefiner, Renamer, SourceFileRemover, JDefinedClassOrInterfaceAdapter: [TypeAnnotationRemover, LineNumberRemover, JFieldAdapter: [FieldAnnotationRemover], JMethodAdapter: [MethodAnnotationRemover, ParameterAnnotationRemover, LocalVariableGenericSignatureRemover, ThrownExceptionRemover, ParameterNameRemover, LocalVariableAndThisNameRemover]], JDefinedClassOrInterfaceAdapter: [JayceInLibraryWriterAll], JDefinedClassOrInterfaceAdapter: [JMethodAdapter: [DefaultBridgeInLambdaAdder]], JDefinedClassOrInterfaceAdapter: [JMethodAdapter: [BridgeInInterfaceRemover]], JDefinedClassOrInterfaceAdapter: [JMethodAdapter: [AndroidCompatibilityChecker]], JDefinedClassOrInterfaceAdapter: [JMethodAdapter: [LambdaCollector]], LambdaGroupClassCreator, JDefinedClassOrInterfaceAdapter: [LambdaGroupClassFinalizer], JDefinedClassOrInterfaceAdapter: [JMethodAdapter: [LambdaConverter]], JDefinedClassOrInterfaceAdapter: [TypeDependenciesCollector, FileDependenciesCollector], JDefinedClassOrInterfaceAdapter: [JMethodAdapter: [DynamicAssertionTransformer, NotSimplifier]], JDefinedClassOrInterfaceAdapter: [JFieldAdapter: [FieldInitializer], JMethodAdapter: [ConditionalAndOrRemover, BooleanTestTransformer, SplitNewInstance, MultiDimensionNewArrayRemover, InitInNewArrayRemover, PrimitiveClassTransformer, SynchronizeTransformer, NestedAssignRemover, IntersectionTypeRemover, UselessCaseRemover, UselessSwitchesRemover, TypeLegalizer, RopCastLegalizer, FinallyRemover, ExceptionRuntimeValueAdder, DefinitionMarkerAdder, ThreeAddressCodeBuilder, UselessCastRemover, DefinitionMarkerRemover, TryCatchRemover, ExpressionStatementLegalizer, EmptyClinitRemover]], JDefinedClassOrInterfaceAdapter: [JMethodAdapter: [DalvikProtectedInnerChecker]], TypeDependenciesInLibraryWriter, FileDependenciesInLibraryWriter, LibraryDependenciesInLibraryWriter, SeedPrinter, MappingPrinter, JDefinedClassOrInterfaceAdapter: [ReflectAnnotationsAdder, JMethodAdapter: [DefaultValueAnnotationAdder]], JDefinedClassOrInterfaceAdapter: [ClassDefItemBuilder, TypeContainerAnnotationAdder, ClassAnnotationBuilder], JDefinedClassOrInterfaceAdapter: [JMethodAdapter: [RefAsStatementRemover, CfgBuilder, DefinitionMarkerAdder, ReachingDefinitions, UsedVariableAdder, DefUsesAndUseDefsChainComputation, ConstantRefinerAndVariableRemover, UseDefsChainsSimplifier, DefUsesChainsSimplifier, UnusedDefinitionRemover, RefAsStatementRemover, CfgMarkerRemover, CfgBuilder, IfWithConstantSimplifier, UnusedLocalRemover, DefUsesAndUseDefsChainRemover, DefinitionMarkerRemover, UsedVariableRemover, ExpressionSimplifier, UselessIfRemover, CfgMarkerRemover, CfgBuilder]], JDefinedClassOrInterfaceAdapter: [JMethodAdapter: [CodeItemBuilder, CfgMarkerRemover, EncodedMethodBuilder, MethodContainerAnnotationAdder, MethodAnnotationBuilder, MethodBodyRemover]], JDefinedClassOrInterfaceAdapter: [JFieldAdapter: [FieldContainerAnnotationAdder, EncodedFieldBuilder, FieldAnnotationBuilder]], JDefinedClassOrInterfaceAdapter: [DexInLibraryWriterAll], Aborter, DexFileWriter, ResourceWriter, LibraryResourceWriter, LibraryMetaWriter]Information:BUILD FAILED
这下除了知道是transformJackWithJackForRelease这个task出了问题,其他啥都看不懂了,懵了。
放弃混淆就能成功打包,但还是想把代码作混淆处理,所以继续。
感觉问题还是出在proguard-rules.pro中,于是把里面的一项项删除打包删除打包,终于在删除下面这两项之后成功了。
#未混淆的类和成员-printseeds seeds.txt#混淆前后的映射-printmapping mapping.txt
另外现在的Android Studio已经不需要下面这个配置
shrinkResources true
添加了反而会报如下错误
Information:Gradle tasks [:pub:assembleRelease]Error:A problem was found with the configuration of task ':pub:packageRelease'.> File 'C:\..\pub\build\intermediates\res\resources-release-stripped.ap_' specified for property 'resourceFile' does not exist.Information:BUILD FAILED
好了,收工!
0 0
- Android Studio 初试 Java 8
- android studio初试ndk,jni
- Android Studio 3.0.0 初试
- 初试ndk开发之Android studio实践
- Java 8 lambda初试
- ButterKnife Android studio初试:配置环境,解决空指针问题
- 初试Android
- Android初试
- 初试java
- java 初试
- Java 初试
- 初试Java
- 初试java
- Visual Studio 2010 初试有感
- aar依赖初试, 使用android studio制作aar包以及依赖方法
- android 抽屉功能初试
- Android初试Volley
- Android UiAutomator 初试。
- 可以滑动,定时轮播的banner
- Android Fragment 真正的完全解析
- Trim(有翻译为:修剪,但非正式翻译)
- Oracle的LOGMNR工具
- Android6.0 MTK 需求文档(六)
- Android Studio 初试 Java 8
- Git工作流指南
- Homography 知多少?
- 如何使用ArcGIS Server发布地图服务
- MySQL中嵌套子查询删除出错解决方案
- freemarker标签用法
- Android性能优化第(八)篇---App启动速度优化上
- 欢迎使用CSDN-markdown编辑器
- iOS — 判断NSString是否有效