1、xUtils的图片加载任务会阻塞Http请求,因为xUtils中的图片加载框架1.Gradle 打包(不废话了直接来脚本),将下列脚本放到build.gradle文件android{}内;
defaultConfig{
//applicationId "" //应用包名
minSdkVersion 9 //sdk最小支持版本
targetSdkVersion 17 //sdk目标版本
versionCode 1
versionName "1.0"
//dex突破65535限制
multiDexEnabled true
// AndroidManifest.xml 里面UMENG_CHANNEL的value为 ${UMENG_CHANNEL_VALUE}
//manifestPlaceholders = [UMENG_CHANNEL_VALUE:""]
}
//执行lint检查,有任何的错误或者警告提示,都会终止构建,我们可以将其关掉。
lintOptions{
abortOnError false
}
//签名
signingConfigs{
myConfig{
storeFile file("123456") //签名文件路径
storePassword "123456"
keyAlias "123456"
keyPassword "123456"
}
}
buildTypes {
release {
// 不显示Log
buildConfigField "boolean", "LOG_DEBUG", "false"
//混淆
minifyEnabled true
//Zipalign优化
zipAlignEnabled true
// 移除无用的resource文件
shrinkResources true
//加载默认混淆配置文件 progudard-android.txt在sdk目录里面,不用管,proguard.cfg是我们自己配<span></span>的混淆文件
proguardFiles getDefaultProguardFile('proguard-android.txt')
proguardFile 'proguard.cfg'
//签名
signingConfig signingConfigs.myConfig
}
}
//flavorDimensions "abi"
//渠道Flavors,我这里写了一些常用的
productFlavors {
_360 {
}
xiaomi {
}
}
productFlavors.all { flavor ->
flavor.manifestPlaceholders = [UMENG_CHANNEL_VALUE: name]
}
applicationVariants.all { variant ->
variant.outputs.each { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
// 输出apk名称为appName_v1.0.apk
def fileName = "${variant.productFlavors[0].name}_v${defaultConfig.versionName}.apk"
output.outputFile = new File(outputFile.parent, fileName)
}
}
}
然后 使用 gradle clean assembleRelease -d(输出debug信息) 一般就会成功打出360和小米的渠道包。
Notes:
1.混淆文件问题
proguard.ParseException: Unknown option ‘锘?–dump.txt
先查看混淆配置文件的编码和然后最将文件修改为proguard.cfg,并打开查看文件中命令行被识别为止;
2.引用第三方jar问题
Execution failed for task java.io.IOException: Can’t write ‘ ’ Can’t read
查看引用第三方jar包是否被多次引用(删除被多次引用jar),引用依赖maven的写法
dependencies {
compile ‘com.android.support:support-v4:13.0.0’
}
并且Can’t read后面跟着的jar在libs中删除。
(使用Gradle2.2.1 eclipse转android studio项目)