web-dev-qa-db-ja.com

Android Studio Update 0.4.0はbuildConfig()を見つけることができませんでした

Android Studioをバージョン0.4.0にアップグレードした後、新しいエラーが発生しました:

Gradle-wrapper.propertiesを介してgradle1.9にアップグレードしました

distributionUrl=http\://services.gradle.org/distributions/gradle-1.9-all.Zip

build.gradleのgradleバージョンをアップグレードしました

dependencies {
    classpath 'com.Android.tools.build:gradle:0.7.+'
}

今、私のプロジェクトは再び構築されています。

さまざまなproductFlavorsに対していくつかの文字列定数を定義しています。

productFlavors {
    local {
        buildConfig "public static final String MY_KEY = \"\";"
    }

    alpha {
        buildConfig "public static final String MY_KEY = \"XXXXX-XXXXX-XXX\";"
    }

    beta {
        buildConfig "public static final String MY_KEY = \"YYYYY-YYYYY-YYY\";"
    }
}

そしてここに新しいエラーがあります

引数のメソッドbuildConfig()が見つかりませんでした [public static final String MY_KEY = "";] on GroupableProductFlavorDsl_Decorated {name = local、minSdkVersion = -1、targetSdkVersion = -1、renderscriptTargetApi = -1、renderscriptSupportMode = null、renderscriptNdkMode = null、versionCode = -1、versionName = null、packageName = null、testPackageName = null、testInstrumentationRunner = null、testHandleProfiling = null、testFunctionalTest = null、signingConfig = null、resConfig = null}。

すべてがAndroid Studio3.7で動作していました

28
passsy

コメントが使えません(長すぎます)。これは、gradle1.9の新機能にあります。

DSLの変更:buildConfigLinebuildConfigFieldに置き換えられました:

buildConfigField "boolean", "MY_FLAG", "true"

フレーバーまたはビルドタイプのデフォルト設定で定義されたフィールドをオーバーライドできます。 「基本」サンプルを参照してください。

Build Configには、PACKAGE_NAMEVERSION_CODEVERSION_NAMEBUILD_TYPEFLAVOR、およびFLAVOR_<group>の定数が自動的に含まれるようになりました。いくつかのフレーバーの次元。

したがって、次のような行がある場合:

buildConfig "public static final boolean MY_FLAG = true;"

これで、次のようなものに置き換える必要があります。

buildConfigField "boolean", "MY_FLAG", "true"

あなたの場合:

buildConfigField "String" , "MY_KEY" ,  "\"XXXXX-XXXXX-XXX\""

2015年12月9日更新:

新しい実験プラグイン(0.2.1)では、以下を使用する必要があります。

buildConfigFields.with {
                create() {
                    type = "String"
                    name = "MY_KEY"
                    value = "MY_VALUE"
                }
            }
93

このバージョンでは、次の変更が導入されています。

buildConfigField "<type>", "<name>", "<value>"

このような行がある場合:

buildConfig "public static final boolean FLAG = true;"

今、あなたは使用する必要があります:

buildConfigField "boolean", "FLAG", "true"

文字列値には、次のものを使用できます。

buildConfigField "String", "FOO", "\"foo\""

注:以前のDSLプロパティ:

buildConfigLine "<value>"

に変更されました

buildConfigField "<type>", "<name>", "<value>"
3
user1650415