Jav*_*tor 5 java android properties
我想在local.properties中添加自定义字段
debug.username = test123
debug.password = abcd1234
可以在assets文件夹中添加.properties文件并轻松读取.
Resources resources = context.getResources();
AssetManager assetManager = resources.getAssets();
Properties properties = null;
InputStream inputStream = assetManager.open(fileName);
properties = new Properties();
properties.load(inputStream);
Run Code Online (Sandbox Code Playgroud)
但是不想这样做.因为我希望我们的每个团队成员都使用local.properties来指定自定义属性.这不是版本控制系统的一部分.
那么如何在运行时读取java文件中基于gradle的android项目的根文件夹中的local.properties?
我知道这是一个老问题,但我最近遇到了同样的事情,我想我会分享我的解决方案:
BuildConfig常量.BuildConfigJava代码中的常量.local.properties
username=myUsername
Run Code Online (Sandbox Code Playgroud)
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()+"\""
}
}
Run Code Online (Sandbox Code Playgroud)
示例Java类:
package your.package.name;
class MyClass {
String getUsername() {
return BuildConfig.USERNAME; // Will return "myUsername"
}
}
Run Code Online (Sandbox Code Playgroud)
小智 2
Properties properties = new Properties();
InputStream inputStream =
this.getClass().getClassLoader().getResourceAsStream("fileName.properties");
properties.load(inputStream);
Username=properties.getProperty("username");
password=properties.getProperty("password");
Run Code Online (Sandbox Code Playgroud)
更详细的答案在这里 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);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4179 次 |
| 最近记录: |