从Android库项目中检索资产

时间:2011-08-22 16:27:46

标签: android sql

我有两个独立的项目,一个加号和免费版本。这两个项目都使用了大量的共享代码,因此我尝试将共享的所有内容集成到Android库项目中。

其中一个共享资源是我在FreeProject / assests / database.db中的数据库。这个文件在两个项目之间共享,我想把它移到LibraryProject / assets / database.db。

在代码中,我将数据库移动到数据库文件夹,其中包含以下内容:

String dbLocation = "/data/data/" + myContext.getPackageName() + "/databases/" + DBNAME;
//Reading the asset and writing it to the database folder.
InputStream myInput = myContext.getAssets().open("database.db");
OutputStream myOutput = new FileOutputStream(dbLocation);

byte[] buffer = new byte[1024];
int length;
while ((length = myInput.read(buffer)) > 0) {
    myOutput.write(buffer, 0, length);
}

myOutput.flush();
myOutput.close();
myInput.close();

所以我的问题是,如何调用getAssets()来获取库项目的AssetManager?或者是否有其他方式可以/应该这样做?

1 个答案:

答案 0 :(得分:2)

来自docs

  

这些工具不支持使用原始资产文件(保存在   资源/目录)在库项目中。使用的任何资产资源   应用程序必须存储在的assets /目录中   应用项目本身。但是,资源文件保存在res /中   目录是受支持的。

您可以使用res / raw和openRawResource()吗?