2015年9月10日木曜日

AndroidStudio でプロパティファイルを扱う方法

概要

AndroidStudio での開発でプロパティファイルを使って、そこから値を取得する方法を紹介します

環境

  • OS X 10.10.5
  • AndroidStudio 1.3.2

プロパティファイルの配置

app/src/main/resources/config.properties に配置します

resources ディレクトリはデフォルトだと存在しないので作成してください

プロパティファイルを読み込むソースコード

まず配置したプロパティファイルを読み込むクラスを作成します
app/src/main/java/com/sample/utils/ConfigPropUtil.java を作成します
パッケージ名やクラス名は好きな名前で作成してOKです

package sample.utils;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

public class ConfigPropUtil {

    private static final String CONFIG_FILE = "config.properties";
    private Properties prop;

    public ConfigPropUtil() {
        prop = new Properties();
        InputStream is;
        try {
            is = this.getClass().getClassLoader().getResourceAsStream(CONFIG_FILE);
            prop.load(is);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public Object get(String key) {
        return prop.get(key);
    }
}

java.util.Properties を使ってプロパティファイルを読み込みます
プロパティファイル名 (CONFIG_FILE) は配置した名前にすればなんでもOKです
フルパスでは設定せずファイル名だけで指定します

他のクラスから使用する方法

例えば Activity 継承したクラスで onCreate 内では以下のように利用します

private ConfigPropUtil config;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.start_activity);
    config = new ConfigPropUtil();
    String key = (String) config.get("key.name");
}

こんな感じで使えます

最後に

トラブルシュートでとしてはFileNotFoundException or NullPointerExceptionが発生すると思います
原因のほとんどはファイルが見つからない場合です

AndroidStudio でビルドする場合は gradle を利用します
gradle で apk ファイルを作成してから実機なりシミュレータに転送して実行します
なので apk ファイルに config.properties が含まれる必要があるため app/src/main/resources/config.properties にプロパティを配置しました
gradle は app/src/main/resources/ にあるファイルを自動的にビルドに含めてくれるのです

0 件のコメント:

コメントを投稿