如何local.properties在java文件中阅读www.example.com android

xurqigkl  于 2023-02-06  发布在  Android
关注(0)|答案(3)|浏览(170)

我想在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来指定自定义属性,这不是版本控制系统的一部分。
那么,如何在运行时读取Java文件中基于gradle的Android项目根文件夹中的local.properties

wwodge7n

wwodge7n1#

我知道这是一个老问题,但我最近遇到了同样的事情,我想我应该分享我的解决方案:
1.在local.properties文件中设置该值。
1.读取Gradle构建脚本中的值,并将其设置为BuildConfig常量。
1.访问Java代码中的BuildConfig常量。

本地.属性

username=myUsername

构建版本分级

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"
    }
}
kupeojn6

kupeojn62#

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);
        }
9udxz4iz

9udxz4iz3#

以下是其他解决方案的变体,其中包含了一些基本要素:
local.properties:

username=test123
password=abcd1234

build.gradle

android {
    ...
    defaultConfig {
        ...
        Properties properties = new Properties()
        properties.load(project.rootProject.file('local.properties').newDataInputStream())
        buildConfigField "String", "USERNAME", "\"" + properties.getProperty('username') + "\""
        buildConfigField "String", "PASSWORD", "\"" + properties.getProperty('password') + "\""
    }
}

java :

String userName = BuildConfig.USERNAME;

相关问题