admin

从Android Lib项目检索资产

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?还是我可以/应该这样做的另一种方式?


阅读 159

收藏
2021-06-07

共1个答案

admin

文档

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

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

2021-06-07