我想在local.properties中添加自定义字段,例如
debug.username = test123
debug.password = ABCD1234
可以在assets文件夹中添加.properties文件并轻松读取。
String st =
"<http://dbpedia.org/resource/53debf646ad3465872522651> <http://dbpedia.org/resource/end> <http://dbpedia.org/resource/1407106906391> .
<http://dbpedia.org/resource/53debf676ad3465872522655> <http://dbpedia.org/resource/foi> <http://dbpedia.org/resource/SpatialThing> ."
但不想这样做。 因为我希望我们的每个团队成员都使用local.properties来指定自定义属性。这不是版本控制系统的一部分。
那么如何在运行时读取java文件中基于gradle的android项目的根文件夹中的local.properties ?
答案 0 :(得分:7)
我知道这是一个老问题,但我最近遇到了同样的事情,我想我会分享我的解决方案:
BuildConfig
常量。BuildConfig
常量。<强> local.properties 强>
username=myUsername
<强>的build.gradle 强>:
def getUsername() {
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
return properties.getProperty("username");
}
android {
defaultConfig {
buildConfigField "String", "USERNAME", "\""+getUsername()+"\""
}
}
示例Java类:
package your.package.name;
class MyClass {
String getUsername() {
return BuildConfig.USERNAME; // Will return "myUsername"
}
}
答案 1 :(得分:2)
Properties properties = new Properties();
InputStream inputStream =
this.getClass().getClassLoader().getResourceAsStream("fileName.properties");
properties.load(inputStream);
Username=properties.getProperty("username");
password=properties.getProperty("password");
更详细的答案在这里 http://pillsfromtheweb.blogspot.in/2014/09/properties-file-in-android.html
并且资产使用此代码
AssetManager assetManager = getAssets();
InputStream inputStream = null;
try {
inputStream = assetManager.open("fileName.properties");
properties.load(inputStream);
String Username = properties.getProperty("username");
String password = properties.getProperty("password");
}
catch (IOException e){
Log.e("message: ",e.toString);
}