0

現在、Eclipse と JUnit を介して Android 用のテスト フレームワークを作成中です。最後に実装するのは、必要に応じて構成ファイルを使用してさまざまなプロパティを変更できるようにする構成ファイルとリーダーです。私のフレームワークの構造は次のとおりです。

MainFramework (project)
  Base package
  Utility package
    Config class

Testing (project)
  examples package
    Artist testing class

構成クラスは次のとおりです。

パブリッククラス構成{

private static Config instance;
public Context context;
public static Properties prop;

public static StorefrontConfig getInstance(Context context) {

    if(instance == null)
        instance = new StorefrontConfig(context);
    return instance;
}

protected StorefrontConfig(Context cont) {
    context = cont;
    AssetManager manager = context.getAssets();
    try {
        InputStream instream = manager.open("config");
        readConfig(instream);
    }
    catch (Exception e) {
        Log.d("cool", "Failed to create properly initialized config class");
    }
}

private static void readConfig(InputStream instream) {

    try {
        String line = "";
        BufferedReader read = new BufferedReader(new InputStreamReader(instream));

        while ((line = read.readLine()) != null) {
            String[] split_line = line.split("=", 2);
            prop.setProperty(split_line[0], split_line[1]);
        }

        prop.store(new FileOutputStream("config.properties"), "Default and local config files");
        read.close();
    }
    catch (Exception e) {
        Log.d("cool", "Failed to create properly initialized config class");
    }
}

public String getProperty (String propertyKey) {

    try {
        return prop.getProperty(propertyKey);
    }
    catch (Exception e) {
        Log.d("cool", "Failed to access property");
        return null;
    }
}

public Context getContext () {
    return context;
}

コードで getProperty() メソッドを呼び出すと、常に null が返されます。ただし、最初に値の読み取りと書き込みに失敗しているのか、それとも何が起こっているのかわかりません。私が知っているのは、私のプログラムはハードコードされた値で動作しますが、このクラスを使用し、必要に応じてコードで config.getProperty() を介して参照する場合は機能しないということです (私のメイン フレームワークには、すべてのテストで継承される Config クラスがあります)。

どんな助けでも本当に感謝しています。私が考えることができる唯一のことは、JavaのPropertiesクラスがAndroidで使用できないということですか?

4

1 に答える 1

0

Java のプロパティは Android で使用できます。

をインスタンス化していないように見えますprop。これはおそらくNullPointerExceptionwhen you call になりますprop.getProperty(propertyKey)。ある時点で、でインスタンス化する必要がありpropますprop = new Properties();これらの例をチェックしてください。2 番目の方法では、 のようにプロパティ ファイルを手動で解析する必要がないため、おそらく作業が楽になりますreadConfig()

于 2013-07-16T05:10:51.787 に答える