2017-08-13 4 views
0

からのアンドロイドライブラリーからのリソースへのアクセスカスタムビュークラスのWebViewにhtmlファイルをロードしたプロジェクトがあり、アプリケーションとしてコンパイルするとうまくいきました。ライブラリーコード

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

このコードは、WebViewを拡張したカスタムビューの一部です。スタンドアローンのテストアプリケーションとして、カスタムビューをアクティビティに配置した後は正常に機能しました。

私は後でプロジェクトをライブラリプロジェクトに変更しました。

このカスタムコントロールを使用して、メインプロジェクトを実行しているときに、正常別のプロジェクトにライブラリプロジェクトとしてこれを追加すると、正常にコンパイルするために、すべてを取得した後、WebViewの中にエラーがある:

ファイルのWebページ:私は、Android StudioでAPKを検査し、ファイルchart.htmlは、RES /生/チャートの下で提供され

ネット:: ERR_FILE_NOT_FOUND

:ので///android_res/raw/chart.htmlをロードできませんでした.html

メインアプリケーションコードから呼び出されたときに、同じフォルダに他のhtmlファイルを読み込むと、ライブラリモジュールのwebView行だけがリソースを見つけられません。

また、ライブラリモジュールからchart.htmlファイルをメインアプリケーションリソースフォルダにコピーするAndroidスタジオプロジェクトも試しましたが、メインアプリケーションの1つのリソースフォルダにリソースファイルがマージされているようですメインアプリケーションのコードだけがライブラリからのコードではなく、その特定のファイルがライブラリモジュールからのものであっても、そのファイルを見つけることができます。 logcatで

私は、次を参照してください。

にjava.lang.ClassNotFoundException:パス上のクラス "lu0.com.ar.yangSim.R $生" が見つかりませんでした:DexPathListを[[zipファイル「/データ/アプリ/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"); 
で資産フォルダや負荷にリソースファイルを移動し、この場合の解決