在属于Library项目的类中,我调用:
webview.loadUrl("file:///android_asset/info.html", null);
Run Code Online (Sandbox Code Playgroud)
不幸的是,这只有在我将文件info.html 复制到Application的项目资产文件夹中时才有效.
有没有办法告诉Android库代码:"在库的资源文件夹中查找此文件,而不是在应用程序的资源文件夹中"?
我正在构建一个内部需要一些静态资源(images/xml等)的android库项目.
然后我想知道我可以把这些资源放在哪里以及如何访问它们?
因为我把资源放在了assets文件夹中.我使用AssetManager访问资源:
public class DataProvider {
byte[] getDrawableData(int num) {
AssetManager am = Resources.getSystem().getAssets();
InputStream is = null;
try {
is = am.open("t.jpg");
} catch (IOException e) {
return "".getBytes();
}
if (is != null) {
Drawable dw = Drawable.createFromStream(is, null);
Bitmap bm = ((BitmapDrawable) dw).getBitmap();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
bm.compress(Bitmap.CompressFormat.JPEG, 100, stream);
return stream.toByteArray();
}
return "".getBytes();
}
}
Run Code Online (Sandbox Code Playgroud)
但是我得到了错误: W/System.err(19583): java.io.FileNotFoundException: t.jpg
问题是什么?
如上所述Sankar V,图书馆项目不支持原始资产.然后我似乎必须把resurces放在res文件夹下.
但我试图使用Resources.getSystem().getResources()....无法得到我想要的方法.人们说这种方法只能获得系统级资源而不是应用级资源.
如果这是事实.这是否意味着我必须在Context …
我有一个我正在创建的NDK库,需要包含和访问二进制数据文件(.dat扩展名).我无法让编译库看到这个文件.为了让事情变得更困难,我在图书馆包中做这件事.
我认为,如果在我的Android.mk文件中,我将此.dat文件复制到我的应用程序的资源文件夹,然后从应用程序中访问它,但我觉得必须有更好的方法.
有什么建议?