这个错误的原因就是build.gradle的配置都统一调用自定义的gradle文件
这个我们就要说一下自定义gradle文件了。
我们在项目开发中为了避免项目和引用的多个module使用的 sdk版本不一致,为了统一版本号,我们一般会建一个公用的gradle文件。
在项目主目录下定义一个xxx.gradle的文件
我们这里定义了一个 dependencies.gradle的文件,内容为
ext.change = [ code : 100, name : '1.1.0', ] ext.versions = [ minSdk : 15, targetSdk : 26, compileSdk : 26, buildTools : '26.0.2', applicationId : "com.today.step", androidGradlePlugin : '3.2.1', supportLibs : '26.1.0', ] ext.gradlePlugins = [ android : "com.android.tools.build:gradle:$versions.androidGradlePlugin", ] ext.libraries = [ supportAppCompat : "com.android.support:appcompat-v7:$versions.supportLibs", supportRecyclerView : "com.android.support:recyclerview-v7:$versions.supportLibs", ]
然后我们在项目的根目录下 build.gradle配置如下:
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { apply from: 'dependencies.gradle' repositories { jcenter() mavenCentral() google() } dependencies { classpath gradlePlugins.android } } allprojects { repositories { jcenter() google() } }
然后在APP及module中的 build.gradle文件中就可以直接这样定义了
apply plugin: 'com.android.application' android { compileSdkVersion versions.compileSdk buildToolsVersion '28.0.3' defaultConfig { applicationId versions.applicationId minSdkVersion versions.minSdk targetSdkVersion versions.targetSdk versionCode change.code versionName change.name testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { debug{ } release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { implementation fileTree(include: ['*.jar'], dir: 'libs') implementation libraries.supportAppCompat implementation project(':lib-todaystepcounter') }