嘗試從資產目錄加載文件以便將其用作配置文件。 AssetManager找不到它。 config.global和config.properties都位於項目的assets目錄中。 config類是在setUp()函數中生成的,然後調用readConfig來開始。下面是在主文件中的代碼:AssetManager無法在資產目錄中找到文件
protected void setUp() throws Exception {
super.setUp();
mLithium = (LithiumExtension) Trio.getInstance(new LithiumExtension(this))
.getExtension();
config = StorefrontConfig.getInstance();
Resources resources = getActivity().getResources();
AssetManager asM = resources.getAssets();
InputStream in = asM.open("config.global");
OutputStream out = asM.openFd("config.properties").createOutputStream();
config.readConfig(in, out);
setTestSettings();
}
而對於配置代碼:
public class Config {
private static Config instance;
public Properties prop;
static {
instance = new Config();
}
private Config() {
prop = new Properties();
}
public void readConfig(InputStream in, OutputStream out) {
try {
prop.load(in);
in.close();
prop.store(out, "yay");
out.close();
}
catch (Exception e) {
System.out.println("Failed to create properties");
System.exit(3);
Log.d("Config", "Failed to create properly initialized config class");
}
}
public static Config getInstance() {
if(instance == null)
instance = new Config();
return instance;
}
public String getProperty (String key) {
return prop.getProperty(key);
}
}
在運行時,我得到了一個config.global
java.io.FileNotFoundException
。這是拋在代碼的asM.open("config.global")
行。一直困在這一點上。任何幫助,將不勝感激!
您能得到什麼,如果你登錄as的內容M.list(「」)'?(http://developer.android.com/reference/android/content/res/AssetManager.html#list(java.lang.String))另外,你是否清理過你的項目,因爲添加文件到資產? – Geobits
我已經清理,刷新和重建整個項目。另外,出於某種原因,當我做Log.i時LogCat沒有輸出任何東西(asM.list(「」)[0],null) – user2433924
它可能找不到合適的資產。嘗試將活動上下文傳遞給Tarsem在下面的註釋中建議的設置方法。 – Geobits