2017-08-13 42 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");