我是一名探索 Android 世界的新开发人员。我目前正在通过 Udacity 教程来创建 Sunshine 应用程序。在片段活动类中,为了从 openweathermap 获取数据,我必须将从我的帐户获得的 API 密钥添加到生成的 URL 的末尾。在Fragment 活动中有对 BuildConfig.java 的调用(单击以查看对 BuildConfig.java 的调用,该调用位于第 6 行,作为 String apiKey 的一部分)。
build.gradle 文件如下:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.example.android.sunshine.app"
minSdkVersion 10
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
buildTypes.each {
it.buildConfigField 'String', 'OPEN_WEATHER_MAP_API_KEY', 'c882c94be45fff9d16a1cf845fc16ec5'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.1.0'
}
在 buildTypes.each it.buildConfigField 被调用 'String', 'OPEN_WEATHER_MAP_API_KEY', 'c882c94be45fff9d16a1cf845fc16ec5' 导致
public static final String OPEN_WEATHER_MAP_API_KEY = c882c94be45fff9d16a1cf845fc16ec5;
在 BuildConfig.java 中生成,但是我不断收到此错误: 无法解析符号(单击以查看错误消息和 BuildConfig.java 文件)我不明白为什么字符串 OPEN_WEATHER_MAP_API_KEY 会自动创建为一组字母和数字而没有引号,但如果我编辑代码以阅读:
public static final String OPEN_WEATHER_MAP_API_KEY = "c882c94be45fff9d16a1cf845fc16ec5";
或者
public static final String OPEN_WEATHER_MAP_API_KEY = 'c882c94be45fff9d16a1cf845fc16ec5';
BuildConfig.java 会自动更改自身。我不确定我做错了什么,我检查了许多 Udacity 视频,这些视频没有关于这个问题的任何信息。如果您知道如何解决此问题,请告诉我。
问候。