***********************************************
* app| build.gradledependencies
个人建议最好不要放jar在lib库,以及不要加下面这句
compile fileTree(include:['*.jar'], dir: 'libs')
而是用
compilefiles('libs/jikmediaplayer.jar')
***********************************************
* 因为多个 jar 包里包含了同样的文件(NOTICE.txt),导致打包时因为担心相互覆盖问题而提示出错。 尝试下在 app 下的 build.gradle 中的 android 部分增加一段配置:
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
}
***********************************************
* app| build.gradle
android {
lintOptions {
checkReleaseBuilds false
abortOnError false
}
}
这样打包就不成问题了。checkReleaseBuilds就是在打包Release版本的时候进行检测,这里就直接关掉了,也可以打开,这样报错还会显示出来。关键的就是abortOnError一定要设为false,这样即使有报错也不会停止打包了。
十、logcat使用不习惯的问题(有时候手机程序闪退,错误信息也被清掉了)
***********************************************
apply plugin:'ros-android' 后面的名字怎么确定,搜自定义插件
//Library工程必须加载此插件。注意,加载了Android插件就不要加载Java插件了。因为Android
//插件本身就是拓展了Java插件
apply plugin:'com.android.library'
***********************************************
* app| build.gradle Module级别的build.gradle文件
-------------
apply plugin:'com.android.application'
//引入Android App插件.//
android {
//下面的部分配置Android App相关的信息.//
compileSdkVersion 21
//编译的SDK版本.//
buildToolsVersion "21.1.1"
//Build Tools版本,最好选择版本号大于或等于compileSdkVersion的.//
defaultConfig {
applicationId"com.example.jessica.myapplication"
//application’s ID. 旧版本是 ‘packageName’.//
minSdkVersion 16
//需要的最小API版本.//
targetSdkVersion 21
//应用运行的API版本.//
versionCode 1
versionName "1.0"
}
buildTypes {
release {
//‘BuildTypes’ 控制你App如何编译打包. 如果你想创建你自己的 build variants, 添加到这里.//
minifyEnabled true
//是否进行混淆.//
proguardFilesgetDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
//混淆配置.//
}
}
}
dependencies {
//当然Module需要的依赖关系.//
compile fileTree(dir: 'libs', include:['*.jar'])
//依赖编译app/libs.//
compile'com.android.support:appcompat-v7:21.0.3'
//依赖编译远端库.//
}
**
// 声明是Android程序
apply plugin:'com.android.application'
// 定义一个打包时间
def releaseTime() {
return newDate().format("yyyy-MM-dd", TimeZone.getTimeZone("UTC"))
}
android {
// 编译SDK的版本
compileSdkVersion 21
// build tools的版本
buildToolsVersion '21.1.2'
defaultConfig {
// 应用的包名
applicationId "com.**.*"
minSdkVersion 14
targetSdkVersion 21
versionCode 1
versionName "1.0"
// dex突破65535的限制
multiDexEnabled true
// 默认是umeng的渠道
manifestPlaceholders =[UMENG_CHANNEL_VALUE: "umeng"]
}
// 移除lint检查的error
lintOptions {
abortOnError false
}
//签名配置
signingConfigs {
debug {
// No debug config
}
release {
storeFilefile("../yourapp.keystore")
storePassword "yourpassword"
keyAlias "your alias"
keyPassword "yourpassword"
}
}
buildTypes {
debug {
// buildConfigField 自定义配置默认值
buildConfigField"boolean", "LOG_DEBUG", "true"
buildConfigField"String", "API_HOST","\"http://api.test.com\""//API Hos
versionNameSuffix"-debug"
minifyEnabled false
//是否zip对齐
zipAlignEnabled false
shrinkResources false
signingConfig signingConfigs.debug
}
release {
// buildConfigField 自定义配置默认值
buildConfigField"boolean", "LOG_DEBUG", "false"
buildConfigField"String", "API_HOST","\"http://api.release.com\""//API Host
是否进行混淆
minifyEnabled true
zipAlignEnabled true
// 移除无用的resource文件
shrinkResources true
//混淆规则文件
proguardFilesgetDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfigsigningConfigs.release
applicationVariants.all { variant->
variant.outputs.each { output->
def outputFile =output.outputFile
if (outputFile != null&& outputFile.name.endsWith('.apk')) {
// 输出apk名称为boohee_v1.0_2015-06-15_wandoujia.apk
def fileName ="boohee_v${defaultConfig.versionName}_${releaseTime()}_${variant.productFlavors[0].name}.apk"
output.outputFile = newFile(outputFile.parent, fileName)
}
}
}
}
}
// 友盟多渠道打包
productFlavors {
wandoujia {}
_360 {}
baidu {}
xiaomi {}
tencent {}
taobao {}
...
}
productFlavors.all { flavor ->
flavor.manifestPlaceholders =[UMENG_CHANNEL_VALUE: name]
}
}
dependencies {
// 编译libs目录下的所有jar包
compile fileTree(dir: 'libs', include:['*.jar'])
compile'com.android.support:support-v4:21.0.3'
compile 'com.jakewharton:butterknife:6.0.0'
...
}