Java 错误:梯度同步失败:无法获取未知属性';API#U键';对于DefaultConfig\u

Java 错误:梯度同步失败:无法获取未知属性';API#U键';对于DefaultConfig\u,java,android,android-studio,gradle,build.gradle,Java,Android,Android Studio,Gradle,Build.gradle,错误:无法获取DefaultConfig\u的未知属性“API\u KEY”{name=main,dimension=null,minSdkVersion=null,targetSdkVersion=null,renderscriptTargetApi=null,renderscriptSupportModeEnabled=null,renderscriptsupportmodeblasablenabled=null,renderscriptNdkModeEnabled=null,version

错误:无法获取DefaultConfig\u的未知属性“API\u KEY”{name=main,dimension=null,minSdkVersion=null,targetSdkVersion=null,renderscriptTargetApi=null,renderscriptSupportModeEnabled=null,renderscriptsupportmodeblasablenabled=null,renderscriptNdkModeEnabled=null,versionCode=null,versionName=null,applicationId=null,testApplicationId=null,testInstrumentationRunner=null,testInstrumentationRunner=nullguments={},testHandleProfiling=null,testFunctionalTest=null,signingConfig=null,resConfig=null,mBuildConfigFields={},mResValues={},mProguardFiles=[],mConsumerProguardFiles=[],mManifestPlaceholders={},mWearAppUnbundled=null},类型为com.android.buildle.gradle.internal.dsl.DefaultConfig。 应用插件:“com.android.application”


更改此buildConfigField(“字符串”、“API\U键”、API\U键) 进入这个

    buildConfigField "String", "API_KEY", "\" API_KEY\"" 

要避免代码中出现任何错误,请添加此代码段,并将其作为“我的电影”项目的解决方案:

def getProperty(String filename, String propName) {
    def propsFile = rootProject.file(filename)
    if (propsFile.exists()) {
        def props = new Properties()
        props.load(new FileInputStream(propsFile))
        if (props[propName] != null) {
            return props[propName]
        } else {
            print("No such property " + propName + " in file " + filename);
        }
    } else {
        print(filename + " does not exist!")
    }
}
android {
    compileSdkVersion 27
    buildToolsVersion '27.0.2'
    defaultConfig {
        buildConfigField "String", "API_KEY", "\"${getProperty("local.properties", API_KEY)}\""
        buildConfigField "String", "\"${getProperty("local.properties", ER_API_KEY)}\""
        applicationId "com.gpads.gautham.imagetotextanalysis"
        minSdkVersion 15
        targetSdkVersion 27
        versionCode 2
        versionName "2.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
}

错误在于您试图使用未定义的内容。

作为解决方案,您有几种方法来初始化配置字段:


.在同一范围内,它可以是:

查看定义了
API\u KEY\u 2
的以下代码

android {
    //...
    defaultConfig {
        //...
        def API_KEY_2 = "API_KEY_2"
        buildConfigField("String", "API_KEY", API_KEY_2)
    }
}

.或在全球范围内:

格雷德尔先生 注意:我不建议使用
BuildConfig.SOMETHING
来初始化buildConfigField


GL

包com.gpads.gautham.imagetotextanalysis的可能重复;公共最终类BuildConfig{public static final boolean DEBUG=boolean.parseBoolean(“true”);公共静态最终字符串应用程序_ID=“com.gpads.gautham.imagetotextanalysis”;公共静态最终字符串BUILD_TYPE=“DEBUG”;public static final String FLAVOR=“”;public static final int VERSION_CODE=2;public static final String VERSION_NAME=“2.0”}@HemantParmar这是我的BuildConfig.java
android {
    //...
    defaultConfig {
        //...
        def API_KEY_2 = "API_KEY_2"
        buildConfigField("String", "API_KEY", API_KEY_2)
    }
}
class Globals {
    static String API_KEY_2 = "API_KEY_2"
}

android {
    //...
    defaultConfig {
        //...
        def API_KEY_2 = "API_KEY_2"
        buildConfigField("String", "API_KEY", API_KEY_2)
    }
}