我是一名新开发人员,正在探索Android世界。我目前正在学习Udacity创建Sunshine应用程序的教程。在片段活动类中,为了从openweathermap获取数据,我必须将我的帐户获得的API密钥添加到生成的URL的末尾。在片段活动中调用了BuildConfig.java(单击以查看String apiKey的第6行作为其一部分的BuildConfig.java的调用)。
build.gradle文件如下:
或者
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中,使用'String','OPEN_WEATHER_MAP_API_KEY','c882c94be45fff9d16a1cf845fc16ec5'调用buildConfigField函数,结果为:
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的视频,但没有任何关于这个问题的信息。如果您知道如何解决,请告诉我。
谢谢。