欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

关于AndroidStudio升级到3.0以上的问题总结

程序员文章站 2022-03-23 19:45:04
androidstudio升级后gradle配置出现的问题 (可以 ctrl+f 搜索 (需改动) 可以快速定位到要改动的位置) 项目的build.gradle里面有改变 buildscrip...

androidstudio升级后gradle配置出现的问题

(可以 ctrl+f 搜索 (需改动) 可以快速定位到要改动的位置)

项目的build.gradle里面有改变

buildscript {
 repositories {
  google()  //(需改动)as3.0以上这里要配置
  jcenter()
 }
 dependencies {
//c:\program files\android\android studio\gradle\m2repository\com\android\tools\build\gradle
//c:\program files\android\android studio 你自己本机的android studio路径(需改动)
  classpath 'com.android.tools.build:gradle:3.1.2'
 }
}

allprojects {
 repositories {
  google() //(需改动)as3.0以上这里要配置
  jcenter()
  maven { url "https://maven.google.com" }
  maven {
url 'https://dl.bintray.com/oschinaapp/maven/'
  }
 }
}

task clean(type: delete) {
 delete rootproject.builddir
}
ext {//这个给module里的build.gradle配置的常量
 compilesdkversion = 26
 buildtoolsversion = "26.1.0"
 applicationid = "cn.cn.oschinadome"
 minsdkversion = 19
 targetsdkversion = 24
 versioncode = 288
 versionname = "v2.8.8(1708301525)"
 supportversion = '25.1.0'
}

项目下的gradle文件配置

project(项目目录下)\gradle\wrapper\gradle-wrapper.properties

distributionbase=gradle_user_home
distributionpath=wrapper/dists
zipstorebase=gradle_user_home
zipstorepath=wrapper/dists
distributionurl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
#目录:例如 c:\users\machenike\.gradle\wrapper\dists 这个在你用户目录下的.gradle\wrapper\dists看有没有
#3.5以上的gradle版本,gradle-4.4-all是我目录下的
#也可以直接删除gradle文件,直接使用在线的gradle

module下的build.gradle文件需要改动

apply plugin: 'com.android.application'
android {
 compilesdkversion rootproject.ext.compilesdkversion  //在项目中的build.gradle ext{}里面
//buildtoolsversion rootproject.ext.buildtoolsversion //(需改动)在as3.0以上不需要这个配置了

 defaultconfig {
  applicationid rootproject.ext.applicationid
  minsdkversion rootproject.ext.minsdkversion
  targetsdkversion rootproject.ext.targetsdkversion
  versioncode rootproject.ext.versioncode
  testinstrumentationrunner "android.support.test.runner.androidjunitrunner"
  versionname rootproject.ext.versionname
//  jackoptions.enabled = true //(需改动) 如果你有这个需注释掉
 }
 // rename the apk with the version name
// applicationvariants.all { variant ->  //(需改动)as3.0之后这个是只读,不能这样修改apk的名字,需要注释掉
//  variant.outputs.each { output ->
//output.outputfile = new file(
//  output.outputfile.parent + "/${variant.buildtype.name}",
//  "dome-osc-android-${variant.versionname}-${variant.buildtype.name}.apk".tolowercase())
//  }
// }
 //signing files settings
 signingconfigs {
debug {
 storefile ""
 storepassword ""
 keyalias ""
 keypassword ""
}
release {
 storefile ""
 storepassword ""
 keyalias ""
 keypassword ""
}
 }

 sourcesets { //jni进入项目
  main {
jnilibs.srcdirs = ['libs']
  }
 }

 // 移除lint检查的error
 lintoptions {
  abortonerror false
 }

 //build type setting
 buildtypes {

  debug {
zipalignenabled false
minifyenabled true
proguardfiles getdefaultproguardfile('proguard-android.txt'), 'proguard-rules.pro'
signingconfig signingconfigs.release
  }

  release {
minifyenabled true  //混淆
proguardfiles getdefaultproguardfile('proguard-android.txt'), 'proguard-rules.pro'
zipalignenabled true  //zip算法压缩
signingconfig signingconfigs.release
  }
 }

// productflavors {  //(需改动)(如果有的话)添加flavordimensions "default" dimension "default" 这两个字段
//  oschina {
//manifestplaceholders = [umeng_channel: "oschina"]
//  }
// }

//或者另一种改动请查看(https://blog.csdn.net/small_technical/article/details/72782671) 改动的 start
 flavordimensions "default"
 productflavors {
  oschina {
dimension "default"
manifestplaceholders = [umeng_channel: "oschina"]
  }
 }
 //改动的 end
}

dependencies {
 compile project(':open')//open项目的引用
  //(需改动)这里的所有 compile 变为 implementation或者api 
  //api(如果open里引用里另一个a项目,implementation的话不能使用a项目里的接口,api的话就可以使用a项目的接口) 
  //ctrl+r 快捷键 按键把  (compile ) 替换所有为 (implementation ) (区分大小写)
  //例如(改动后的)  implementation "com.android.support:design:$rootproject.ext.supportversion"
 compile "com.android.support:design:$rootproject.ext.supportversion"
 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'
// })  //android测试框架
// testcompile 'junit:junit:4.12'  //测试框架
 //替换后的为
 testimplementation 'junit:junit:4.12'  //测试框架
 androidtestimplementation 'com.android.support.test:runner:1.0.2'
 androidtestimplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

}