从库代码访问android库中的资源

时间:2017-08-13 17:33:40

标签: android android-webview

我有一个项目在自定义视图类中将一个html文件加载到WebView,当我编译为一个应用程序时它工作正常。

loadUrl("file:///android_res/raw/chart.html");

此代码是扩展WebView的自定义视图的一部分。作为一个独立的测试应用程序,它可以在自定义视图放入活动后正常工作。

我后来将项目更改为图书馆项目。

成功将其作为库项目添加到另一个项目并成功编译后,使用此自定义控件运行主项目时,webview中出现错误:

无法加载 file:///android_res/raw/chart.html 的网页,因为:

净:: ERR_FILE_NOT_FOUND

我在Android Studio中检查了apk,文件chart.html在res / raw / chart.html

下可用

从主应用程序代码调用时,在同一文件夹中加载其他html文件的工作正常,只有库模块中的webView行找不到资源。

我还尝试在Android Studio项目中将chart.html文件从库模块复制到主应用程序资源文件夹,但似乎资源文件在主应用程序的单个资源文件夹中合并没有任何区别,但只有主应用程序中的代码才能找到文件,而不是库中的代码,即使该特定文件来自库模块。

logcat中的

我看到了:

java.lang.ClassNotFoundException:在路径上找不到类“lu0.com.ar.yangSim.R $ raw”:DexPathList [[zip file“/data/app/lu0.com.ar.yangSim-1 /base.apk“,zip文件”/data/app/lu0.com.ar.yangSim-1/split_lib_dependencies_apk.apk“,zip文件”/data/app/lu0.com.ar.yangSim-1/split_lib_slice_0_apk.apk “,zip文件”/data/app/lu0.com.ar.yangSim-1/split_lib_slice_1_apk.apk“,zip文件”/data/app/lu0.com.ar.yangSim-1/split_lib_slice_2_apk.apk“,zip文件“/data/app/lu0.com.ar.yangSim-1/split_lib_slice_3_apk.apk”,zip文件“/data/app/lu0.com.ar.yangSim-1/split_lib_slice_4_apk.apk”,zip文件“/ data / app / lu0.com.ar.yangSim-1 / split_lib_slice_5_apk.apk“,zip文件”/data/app/lu0.com.ar.yangSim-1/split_lib_slice_6_apk.apk“,zip文件”/ data / app / lu0。 com.ar.yangSim-1 / split_lib_slice_7_apk.apk“,zip文件”/data/app/lu0.com.ar.yangSim-1/split_lib_slice_8_apk.apk“,zip文件”/data/app/lu0.com.ar。 yangSim-1 / split_lib_slice_9_apk.apk“],nativeLibraryDirectories = [/ data / app / lu0.com.ar.yangSim-1 / lib / x86,/ system / lib,/供应商/ LIB]]                                                                               在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)

1 个答案:

答案 0 :(得分:0)

问题似乎不是特定于库,可能配置不同的风格,在原始情况下将库代码移动到主项目没有解决问题,而是有类似的问题 this

最后在这种情况下解决了将资源文件移动到assets文件夹并使用

加载的问题
loadUrl("file:///android_asset/chart.html");