### Build文件配置
每个Module都有一个build.gradle文件,App都需要到build.gradle中去配置。
build文件路径示例:...\ImDemo\app\build.gradle。其中“IMDemo”为项目根目录,“app”为Module目录名,一般默认为“app”。
* 打包签名配置
Build文件中配置打包时需要的签名文件“yuanfeng.jks”,yuanfeng.jks的文件路径为...\ImDemo\app\yuanfeng.jks
~~~
signingConfigs {
release {
keyAlias '123456'
keyPassword '123456'
storeFile file('yuanfeng.jks')
storePassword '123456'
}
}
~~~
* 项目版本信息
版本配置一般在项目创建的时候会自动根据开发环境生成,一般不需要修改。
~~~
compileSdkVersion 23
buildToolsVersion '25.0.0'
defaultConfig {
applicationId "com.yuanfeng.ecdemo"
minSdkVersion 16
targetSdkVersion 22
versionCode 2
versionName "2.1.2"
sourceSets {
main {
jniLibs.srcDirs = ['libs']
java.srcDirs = ['src/main/java']
}
}
}
~~~
compileSdkVersion:App基于SDK版本号;
buildToolsVersion:build工具包版本;
applicationId:App唯一标示,默认与包名packageName一致;
minSdkVersion:App支持运行最低Sdk版本号,即最低支持在Android系统什么版本下运行;
versionCode:App版本号,代表App升级了多少次,每次升级的时候数值+1;
versionName:App版本名字,显示在应用商店和手机App应用信息位置。
* compiler导包
开发过程中,我们会集成第三方SDK,在这里需要compiler一下包的地址,例如集成支付,分享等功能。
~~~
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.3.0'
//汉字转拼音
compile files('libs/pinyin4j-2.5.0.jar')
//ImageLoader加载网络图片
compile files('libs/universal-image-loader-1.9.3.jar')
compile files('libs/BaiduLBS_Android.jar')
compile files('libs/glide-3.6.1.jar')
compile files('libs/locSDK_6.13.jar')
compile files('libs/jsoup-1.7.1.jar')
compile files('libs/Yuntx_FullLib_v5.3.1r.jar')
compile 'com.tencent.bugly:crashreport:latest.release'
//其中latest.release指代最新Bugly SDK版本号,也可以指定明确的版本号,例如2.1.9
compile 'com.tencent.bugly:nativecrashreport:latest.release'
//其中latest.release指代最新Bugly NDK版本号,也可以指定明确的版本号,例如3.0
compile 'com.android.support:multidex:1.0.1'
compile files('libs/httpclient-4.3.6.jar')
compile(name: 'library-release', ext: 'aar')
compile files('libs/android-async-http-1.4.4.jar')
compile files('libs/gson-2.2.4.jar')
compile 'com.bigkoo:convenientbanner:2.0.5'
compile 'com.yalantis:ucrop:2.2.0'
//微信支付
compile 'com.tencent.mm.opensdk:wechat-sdk-android-with-mta:1.3.4'
compile files('libs/mta-sdk-1.6.2.jar')
compile files('libs/open_sdk_r5788.jar')
//加载群聊头像使用
compile 'com.squareup.picasso:picasso:2.3.2'
//事件处理
compile 'org.greenrobot:eventbus:3.0.0'
//生成二维码ZXing
compile 'com.google.zxing:core:3.2.1'
//Luban图片压缩工具包
compile 'top.zibin:Luban:1.1.2'
//PickerView
compile 'com.contrarywind:Android-PickerView:3.2.5'
//Base64加密
compile files('libs/sun.misc.BASE64Decoder.jar')
//支付宝支付
compile files('libs/alipaySdk-20170725.jar')
//fastjson解析
compile 'com.alibaba:fastjson:1.2.22'
}
~~~
* 指定打包后应用名称
可以设置打包后生成的文件名,默认设置为项目名+版本名称
~~~
//指定打包后应用名称
applicationVariants.all { variant ->
variant.outputs.all { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
def fileName = outputFile.name.replace(".apk", "ImBuilder_${defaultConfig.versionName}.apk")
outputFileName = fileName
}
}
}
~~~
* 打包报MissingTranslation
打包时有可能会出现MissingTranslation错误导致Build Failed!
~~~
lintOptions {
abortOnError false
checkReleaseBuilds false
// 防止在发布的时候出现因MissingTranslation导致Build Failed!
disable 'MissingTranslation'
}
~~~