我正在尝试使用Android Studio中的BuildConfig
将URL添加到我的gradle
文件中。所以我将这段代码添加到gradle
文件中
buildTypes {
debug {
buildConfigField "String", "MIDTRANS_API", '"https://app.sandbox.midtrans.com/snap/v1"'
}
}
然后,我尝试重建我的项目,并希望此值将出现在BuildConfig
文件中,但事实并非如此。有人可以解释如何正确执行此操作吗?
我完整的gradle
文件代码如下
apply plugin: 'com.android.library'
android {
compileSdkVersion 27
buildToolsVersion '27.0.3'
defaultConfig {
minSdkVersion 19
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
debug {
buildConfigField "String", "DAR_API", '"{some string}"'
buildConfigField "String", "DAR_API_AUTH", '"{some string}"'
buildConfigField "String", "MIDTRANS_API", '"https://app.sandbox.midtrans.com/snap/v1"'
}
rc {
minifyEnabled true
debuggable true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField "String", "DAR_API", '"{some string}"'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
buildConfigField "String", "DAR_API", '"{some string}"'
}
}
在那之后是依赖关系,但我认为它与问题无关
答案 0 :(得分:0)
尝试一下
buildTypes {
debug {
buildConfigField "String", "MIDTRANS_API", "\"https://app.sandbox.midtrans.com/snap/v1\""
}
release {
buildConfigField "String", "MIDTRANS_API", "\"https://app.sandbox.midtrans.com/snap/v1\""
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
在Java中,您可以在同步gradle文件后通过以下代码访问此
String url = BuildConfig.MIDTRANS_API
希望这会对您有所帮助。
答案 1 :(得分:0)
我尝试在项目中使用相同的buildConfigField属性,并成功在 BuildConfig 文件下看到了该变量,以进行调试。
您的项目可能没有正确重建。尝试清理项目,然后重新构建。
要在Java代码中获取属性值,您必须执行以下操作:
String API_URL = BuildConfig.MIDTRANS_API;
注意:要在发布版本中访问此属性,您还必须将其复制到发布类型下。然后将构建变体更改为发布。
在gradle文件中执行此操作,
buildTypes {
debug {
buildConfigField "String", "MIDTRANS_API", '"https://app.sandbox.midtrans.com/snap/v1"'
}
release {
buildConfigField "String", "MIDTRANS_API", "https://app.sandbox.midtrans.com/snap/v1"
}
}
这应该可以解决您的问题。
答案 2 :(得分:0)
我通过更改manifest.xml
文件中尚未更新的包名称解决了我的问题:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.android">