android 签名打包和出现的问题transformClassesAndResourcesWithProguardForRelease
来源:互联网 发布:通州and淘宝城怎么样 编辑:程序博客网 时间:2024/06/04 19:27
首先我们打包时会有一些需求,
一个是混淆,一个是打包去掉无用的资源,这些都是打包前需要提前设置好的,
在你运行的项目下build.gradle文件中
signingConfigs{ release{ def Properties localProps=new Properties() localProps.load(new FileInputStream(file('../local.properties')))//读取本地配置文件 def Properties keyProps=new Properties() //读取自定义的配置文件,这里的(keystore.props.file)是自定义配置文件的绝对路径 assert localProps['keystore.props.file']; keyProps.load(new FileInputStream(file(localProps['keystore.props.file']))) storeFile file(keyProps["storeFile"]) keyAlias keyProps["keyAlias"] storePassword keyProps["storePssword"] keyPassword keyProps["keyPassword"] } } buildTypes { release {//release版 minifyEnabled true//混淆打包 shrinkResources true//去掉不用资源 signingConfig signingConfigs.release proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }
local.properties文件;
## This file is automatically generated by Android Studio.# Do not modify this file -- YOUR CHANGES WILL BE ERASED!## This file must *NOT* be checked into Version Control Systems,# as it contains information specific to your local configuration.## Location of the SDK. This is only used by Gradle.# For customization when using a Version Control System, please read the# header note.#Fri Feb 26 12:57:36 CST 2016sdk.dir=D\:\\YAOWork\\adt-bundle-windows-x86_64-20131030\\sdkndk.dir=D\:\\android-ndk-r10keystore.props.file=E\:\\studio\\aaaaa\\工程名\\自定义配置文件名.properties
自定义配置文件:
storeFile=keystore.jksstorePssword=12345678keyAlias=aliaskeyPassword=12345678
设置完这些就可以打包了,步骤如下:
1.打开build选择Generate signed APK
2.选择你所要打包的项目
3.弹出这样的对话框,如果有签名文件可以选择existing没有就选择创建一个新的签名文件
4.只需填写一下几个就行
5.到这就可以选择你说需要的版本了,我这里debug选择的是默认的
6.打完包会在与你项目同级目录下存在一个相应的apk包
注:当使用混淆打包时可能会出现一个问题
Error:Execution failed for task :transformClassesAndResourcesWithProguardForRelease'.> java.io.IOException: Please correct the above warnings first.
这个问题是在说你在混淆打包的时候有些类有可能找不着,所以会包错,和warning
解决的办法:
找到报warning的类都给他在你的proguard-rules.pro
混淆器文件中
添加代码-dontwarn 包名+类名.**
给取消掉warning就可以了,如果你不想那个类被混淆,那就添加代码:-keep class 包名+类名{*;}或者包名.**{*;}
附带一张混淆文件内容:
# Add project specific ProGuard rules here.# By default, the flags in this file are appended to flags specified# in D:\03.DevSoft\Android\android-sdk_r24.3.4/tools/proguard/proguard-android.txt# You can edit the include path and order by changing the proguardFiles# directive in build.gradle.## For more details, see# http://developer.android.com/guide/developing/tools/proguard.html# Add any project specific keep options here:# If your project uses WebView with JS, uncomment the following# and specify the fully qualified class name to the JavaScript interface# class:#-keepclassmembers class fqcn.of.javascript.interface.for.webview {# public *;#}-dontwarn org.dom4j.**-dontwarn org.bouncycastle.**-dontwarn org.apache.commons.logging.impl.**-keep class com.ObjBlockCipherParam{ *; }-keep class org.apache.commons.logging.impl.**{*;}
推荐其他文章地址:
1.http://www.jayfeng.com/2015/11/07/Android%E6%89%93%E5%8C%85%E7%9A%84%E9%82%A3%E4%BA%9B%E4%BA%8B/
2.https://www.thoughtworks.com/cn/insights/blog/signing-open-source-android-apps-without-disclosing-passwords
3.http://stackoverflow.com/questions/25310157/gradle-android-studio-signing-with-a-properties-file
- android 签名打包和出现的问题transformClassesAndResourcesWithProguardForRelease
- Android studio打包混淆编译的时候出现异常:transformClassesAndResourcesWithProguardForRelease
- android签名打包出现异常的解决方法。
- AS打包出现app:transformClassesAndResourcesWithProguardForRelease错误
- AS打包出现app:transformClassesAndResourcesWithProguardForRelease错误
- 关于android studio 打包签名的问题
- 有关android打包混淆异常transformClassesAndResourcesWithProguardForRelease FAILED
- android studio version 2.3.3 打包签名V1和V2的问题
- Android 签名打包出现的错误的解决方法以及代码中获取应用签名信息方法
- Android反编译和打包签名
- Android 命令行打包和签名
- android 打包App和签名
- android 签名和混淆打包
- android签名和多渠道打包
- android 打包和签名记录
- Android Studio打包签名出现错误
- Android Studio打包签名出现错误
- 简单记录android apk 打包签名中遇到的问题
- Hql的用法
- stl::string与二进制数据
- Tomcat的类加载体系及Tomcat源码
- Android工程笔记:三种实现监听事件的方法
- idoerp
- android 签名打包和出现的问题transformClassesAndResourcesWithProguardForRelease
- 如何汉化 po 文件及编译成 mo 文件
- KVC(key value coding)/ KVO(key value observing)
- C/C++异常处理
- Fatal error: Call to undefined function mb_substr()
- 编程练习---分金币
- JSP - 9大内置对象及其API
- XP使用VNC远程桌面CentOS 6
- 在线会计_金蝶友商网