尝试从资产目录加载文件以便将其用作配置文件。 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