### Build文件配置
每个Module都有一个build.gradle文件,App都需要到build.gradle中去配置。
build文件路径示例:...\yuanfengBBC\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.yuanfengbbc.shop"
minSdkVersion 16
targetSdkVersion 21
versionCode 2
versionName "3.1.3"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
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')
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:23.3.0'
compile 'com.android.support:recyclerview-v7:23.3.0'
compile 'com.android.support:support-v4:23.3.0'
compile 'com.android.support:design:23.3.0'//版本随意(非必须,引用可以解决无法预览问题)
testCompile 'junit:junit:4.12'
//ImageLoader加载图片
compile files('libs/universal-image-loader-1.9.5.jar')
compile 'com.github.lovetuzitong:MultiImageSelector:1.2'
compile 'top.zibin:Luban:1.1.2'
//okHttp
compile 'com.squareup.okhttp:okhttp-urlconnection:1.6.0'
//网络请求
compile files('libs/httpmime-4.1.2.jar')
compile files('libs/httpclient-4.3.6.jar')
compile files('libs/httpcore-4.3.3.jar')
//下拉刷新
compile 'com.scwang.smartrefresh:SmartRefreshLayout:1.0.3'
//支付宝
compile files('libs/alipaySingle-20170510.jar')
//BASE64Decoder
compile files('libs/sun.misc.BASE64Decoder.jar')
//友盟分享
compile files('libs/umeng_social_api.jar')
compile files('libs/SocialSDK_WeiXin_Full.jar')
compile files('libs/SocialSDK_Sina_Simplify.jar')
compile files('libs/mta-sdk-1.6.2.jar')
compile 'com.zhy:autolayout:1.4.5'
//OkHttp网络请求框架
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.squareup.okio:okio:1.5.0'
compile 'com.zhy:okhttputils:2.0.0'
//fastJson框架
compile 'com.alibaba:fastjson:1.2.22'
compile 'com.google.code.gson:gson:2.6.2'
//banner轮播图
compile 'cn.bingoogolapple:bga-banner:2.1.7@aar'
compile 'com.tencent.bugly:crashreport:latest.release'
compile 'com.tencent.bugly:nativecrashreport:latest.release'
compile 'com.bigkoo:convenientbanner:2.0.5'
//微信支付
compile 'com.tencent.mm.opensdk:wechat-sdk-android-without-mta:+'
compile 'cn.finalteam.rxgalleryfinal:library:1.0.1'
//butterknife
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
compile 'com.jakewharton:butterknife:8.5.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
//EventBus事件
compile 'org.greenrobot:eventbus:3.0.0'
//标签控件
compile 'com.github.donkingliang:LabelsView:1.2.0'
}
~~~
* 指定打包后应用名称
可以设置打包后生成的文件名,默认设置为项目名+版本名称
~~~
//指定打包后应用名称
applicationVariants.all { variant ->
variant.outputs.all { output ->
def outputFile = output.outputFile
if (outputFile != null && outputFile.name.endsWith('.apk')) {
def fileName = outputFile.name.replace(".apk", "远丰商城_${defaultConfig.versionName}.apk")
outputFileName = fileName
}
}
}
~~~
* 打包报MissingTranslation
打包时有可能会出现MissingTranslation错误导致Build Failed!
~~~
lintOptions {
abortOnError false
checkReleaseBuilds false
// 防止在发布的时候出现因MissingTranslation导致Build Failed!
disable 'MissingTranslation'
}
~~~