web-dev-qa-db-ja.com

com.Android.build.gradle.AppExtension_Decoratedでプロパティ「xxxx」が見つかりませんでした

私のgradleファイルにこれらの行を追加すると、このエラーが発生しました:

buildTypes.each {
        it.buildConfigField 'String', 'OPEN_WEATHER_MAP_API_KEY', MyOpenWeatherMapApiKey
    }

その後、ログショー:

Could not find property 'MyOpenWeatherMapApiKey' on com.Android.build.gradle.AppExtension_Decorated@c3b784

Googleで検索したソリューションでは、問題を解決できません。私が間違っていた場所を教えてください?

16
DinhNgocHien

Stringを使用しているため、次の構文を使用する必要があります。

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

最後のパラメーターは文字列でなければなりません

それ以外の場合は、次のようなものを使用できます。

resValue "string", "OPEN_WEATHER_MAP_API_KEY", "\"XXXXX-XXXXX-XXX\""

最初のケースでは、BuildConfigファイルに定数が生成されます。
2番目のケースは、@string/OPEN_WEATHER_MAP_API_KEYアノテーションを使用してアクセスできる文字列リソース値を生成します。

26

local user設定でMyOpenWeatherMapApiKeyを定義する必要があるため、ホームgradle設定に移動します:~/.gradle/gradle.properties(Win:%USERPROFILE%\.gradle\gradle.properties)。 gradle.propertiesは存在しません-作成してください。

ファイルに次の行を追加します。

MyOpenWeatherMapApiKey="XXXXXXXXXXXXXXXXXXXXXXXXXXXX"

(残念ながら、Android Udacityの先生は、gradleの観点からそれがどのように機能するかを説明するのはあまり良いことではありません。gradlehow it.buildConfigField動作します)

12
radistao

「OPEN_WEATHER_MAP_API_KEY」は、設定が必要な「MyOpenWeatherMapApiKey」という名前のgradleプロパティを参照します。

理由の1つは、ビルドシステムがこのためのコードを生成することです。もう1つは、誤ってAPI-KEYをGitHubまたは他のパブリックリポジトリにコミットしないようにするためです。

次のように、「gradle.properties」ファイルにエントリを追加する必要があります。

MyOpenWeatherMapApiKey = "[YOUR-API-KEY]"

次に、プロジェクトをgradleと同期します(Android Studioを使用している場合)

11
Lee Hounshell

「Open Weather Map APIキーが必要です。」を参照してください。 https://github.com/udacity/Sunshine-Version-2 の下部

5
Senti
  1. http://openweathermap.org/appid#use または他の天気APIプロバイダーでアカウントをサインアップして、独自のAPIキーを取得します
  2. ホームのgradle設定に移動します:〜/ .gradle/gradle.properties

次の行を追加します。

MyOpenWeatherMapApiKey="yourUniqueApiKey"
  1. 再構築する
4
Zed

この問題を解決するには、ここでの複数の回答から少しの情報を使用する必要がありました。

  1. it.buildConfigField 'String', 'OPEN_WEATHER_MAP_API_KEY', MyOpenWeatherMapApiKeyは問題ありません。上位の回答では、ユーザーの「グローバル」キーを参照するのではなく、キーがこのフィールドに直接入力されます。
  2. アカウントを作成してOpen Weather Map APIキーを取得する必要があります here
  3. Gradleは、Open Weather Mapアカウントの作成から取得したキーを、以前からOPEN_WEATHER_MAP_API_KEYによって参照されているMyOpenWeatherMapApiKeyという名前のフィールドに入れることを期待しています。これを行うには、Android Studioでgradle.propertiesを開き、MyOpenWeatherMapApiKey="<Your Key Here>"を追加します

これで、問題なくアプリをビルドできるはずです。

2
Andrew

受け入れられた答えは絶対に正しいです。 Stringとして内部の値をフォーマットする別の方法、おそらくより簡単な方法は次のとおりです。

it.buildConfigField 'String', 'OPEN_WEATHER_MAP_API_KEY', '"xxxxxxxxxxxxxxxxxx"'
0
n_y