我有两个单独的项目,一个加号和一个免费版。这两个项目都使用了大量共享代码,因此我尝试将共享的所有内容集成到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?还是我可以/应该这样做的另一种方式?
从文档:
这些工具不支持在库项目中使用原始资产文件(保存在资产/目录中)。应用程序使用的任何资产资源都必须存储在应用程序项目本身的asset /目录中。但是,支持保存在res /目录中的资源文件。
您可以改用res / raw和openRawResource()吗?