Could not get unknown property ‘versions‘ for object of type com.android.build.gradle.AppExtension

简介: Could not get unknown property ‘versions‘ for object of type com.android.build.gradle.AppExtension

这个错误的原因就是build.gradle的配置都统一调用自定义的gradle文件


这个我们就要说一下自定义gradle文件了。


我们在项目开发中为了避免项目和引用的多个module使用的 sdk版本不一致,为了统一版本号,我们一般会建一个公用的gradle文件。


在项目主目录下定义一个xxx.gradle的文件


image.png

image.png

我们这里定义了一个 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文件中就可以直接这样定义了

image.png

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')
}


相关文章
|
7月前
|
开发工具 Android开发
Unknown android attribute android:popupPromptView under SherlockSpinner UnknownProjectException
Unknown android attribute android:popupPromptView under SherlockSpinner UnknownProjectException
55 1
|
2月前
|
Python
通过 type 和 object 之间的关联,进一步分析类型对象
通过 type 和 object 之间的关联,进一步分析类型对象
59 3
|
4月前
|
Java 开发工具 Android开发
解决flutter doctor出现Android license status unknown或cmdline-tools component is missing
解决flutter doctor出现Android license status unknown或cmdline-tools component is missing
92 4
解决flutter doctor出现Android license status unknown或cmdline-tools component is missing
|
4月前
|
Docker 容器
成功解决:Caused by: ParsingException[Failed to parse object: expecting token of type [START_OBJECT] but
这篇文章讨论了在使用Docker启动Elasticsearch容器时遇到的一个具体问题:由于配置文件`elasticsearch.yml`解析出错导致容器启动失败。文章提供了详细的排查过程,包括查看容器的日志信息、检查并修正配置文件中的错误(特别是空格问题),并最终成功重新启动了容器。
|
4月前
|
JSON 数据格式 Python
【python】解决json.dump(字典)时报错Object of type ‘float32‘ is not JSON serializable
在使用json.dump时遇到的“Object of type ‘float32’ is not JSON serializable”错误的方法,通过自定义一个JSON编码器类来处理NumPy类型的数据。
174 1
|
7月前
|
JavaScript
Vue报错 Invalid default value for prop “list“: Props with type Object/Array must use a factory
Vue报错 Invalid default value for prop “list“: Props with type Object/Array must use a factory
334 0
|
5月前
|
JSON 前端开发 数据格式
【Python】已解决:TypeError: Object of type JpegImageFile is not JSON serializable
【Python】已解决:TypeError: Object of type JpegImageFile is not JSON serializable
99 0
|
6月前
|
JSON 编解码 Apache
Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
Android中使用HttpURLConnection实现GET POST JSON数据与下载图片
66 1
|
7月前
|
XML JSON Java
Android App网络通信中通过okhttp调用HTTP接口讲解及实战(包括GET、表单格式POST、JSON格式POST 附源码)
Android App网络通信中通过okhttp调用HTTP接口讲解及实战(包括GET、表单格式POST、JSON格式POST 附源码)
982 0
|
7月前
|
开发工具 Android开发 Windows
Android应用] 问题2:ERROR: unknown virtual device name:
Android应用] 问题2:ERROR: unknown virtual device name:
39 2