Я хочу додати спеціальні поля у подібні local.properties
debug.username = test123
debug.password = abcd1234
можна додати файли .properties у папку активів і легко їх читати.
Resources resources = context.getResources();
AssetManager assetManager = resources.getAssets();
Properties properties = null;
InputStream inputStream = assetManager.open(fileName);
properties = new Properties();
properties.load(inputStream);
Але не хочу цього робити. Як я хочу, щоб кожен член нашої команди використовував local.properties, щоб вказати там спеціальний атрибут. яка не є частиною системи управління версіями.
Так як це зробити читайте local.properties, розміщені в кореневій папці андроїд-проекту на основі gradle у файлах Java під час виконання?
Відповіді:
4 для відповіді № 1Я знаю, що це старе питання, але нещодавно я стикався з тим же, і думав, що поділяю своє рішення:
- Встановіть значення у вашому локальні.властивості файл
- Прочитайте значення у сценарії побудови Gradle та встановіть його на a
BuildConfig
постійна - Доступ до
BuildConfig
постійний у вашому коді Java.
локальні.властивості
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"
}
}
2 для відповіді № 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);
}