2017-08-13 66 views
0

我有一个项目将一个html文件加载到自定义视图类中的WebView中,当我编译为应用程序时它工作正常。从库代码中获取来自android库的资源

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

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

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

成功添加这是一个库项目到另一个项目,并让一切成功编译,使用这种自定义控件运行的主要项目时,没有在网页视图错误:

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

网:: ERR_FILE_NOT_FOUND

我Android Studio中的检查和APK文件chart.html下RES /生/图可用.html

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

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

在logcat的

我看到:

抛出java.lang.ClassNotFoundException:未找到路径类 “lu0.com.ar.yangSim.R $原始”:DexPathList [zip文件“/ 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.a r.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,/ vendor/lib]] at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:56)

回答

0

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

终于解决了在这种情况下,移动的资源文件夹的资产和加载与

loadUrl("file:///android_asset/chart.html");