Build.gradle:对“项目"的访问超出其访问权限 [英] Build.gradle: Access to 'project' exceeds its access rights

查看:93
本文介绍了Build.gradle:对“项目"的访问超出其访问权限的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

constants.gradle

project.ext {
    minSdkVersion = 19
    compileSdkVersion = 28
    targetSdkVersion = 28
    buildToolsVersion = '28.0.3'
    supportLibraryVersion = '28.0.0'
}

build.gradle 应用程序

apply plugin: 'com.android.application'
apply from: '../constants.gradle'

android {

    compileSdkVersion project.ext.compileSdkVersion
    buildToolsVersion project.ext.buildToolsVersion

    defaultConfig {
    ...

这里出了什么问题?

虽然它适用于同一项目中的库:

Though it works fine for libraries in the same project:

对于 defaultConfig 块中的下一行也一切正常

Also everything is fine for the next lines in defaultConfig block

minSdkVersion project.ext.minSdkVersion
targetSdkVersion project.ext.targetSdkVersion

Android Studio 3.2,classpath 'com.android.tools.build:gradle:3.2.0'distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

Android Studio 3.2, classpath 'com.android.tools.build:gradle:3.2.0', distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip

似乎在以前的 Gradle 或 Studio 中没有显示此类警告

Seems it didn't show such warnings with the previous Gradle or Studio

推荐答案

这只是一个警告,它应该可以工作.

It's just a warning and It should work.

因为当您在 android 范围内使用 project 时,Gradle 会尝试找到 project 的调用位置.

Because when you use project inside android scope, Gradle tries to find the invocation location of project.

您有两种方法可以修复此警告.

You have two options to fix this warning.

让您的常量超出 android 范围.

Get your constants outside of android scope.

def compileSdkVersion = project.ext.compileSdkVersion
def buildToolsVersion = project.ext.buildToolsVersion

android {

    compileSdkVersion compileSdkVersion
    buildToolsVersion buildToolsVersion
    ...

或者更新你的constants.gradle:

ext {
    buildVersions = [
      minSdkVersion : 19,
      compileSdkVersion : 28,
      targetSdkVersion : 28,
      buildToolsVersion : '28.0.3',
      supportLibraryVersion : '28.0.0',
    ]
}

并在您的 build.gradle 中使用它,例如:

and use it in your build.gradle like:

apply plugin: 'com.android.application'
apply from: '../constants.gradle'

android {

    compileSdkVersion buildVersions.compileSdkVersion
    buildToolsVersion buildVersions.buildToolsVersion
    ...

这篇关于Build.gradle:对“项目"的访问超出其访问权限的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆