经过DexClassLoader加载包apk或者zip,assets文件读取问题

问题:经过DexClassLoader加载包apk或者zip, 经过getAssets().open("xxx"), 会读取不了文件,须要经过class.getResourceAsStream("/assets/__pasys_remote_banner.jar");android

若是非要经过getAssets().open("xxx")读取,是否能够行,答案是确定的api

能够经过反射调用隐藏api:AssetManager.addAssetPath("xxxx/aa.zip");google

而后你就能够经过getAssets().open("xxx")这种方式读取assets目录文件了;code

注意事项:android 5.0开始,压缩包或者apk必须包含AndroidManifest.xml,不然会添加不成功的。具体问题:https://code.google.com/p/android/issues/detail?id=144076xml

相关文章
相关标签/搜索