質問

に属するクラスで としょうかん 私が呼ぶプロジェクト:

webview.loadUrl("file:///android_asset/info.html", null);

残念ながら、これは私の場合にのみ機能します 複製 ファイルinfo.htmlに アプリケーションの プロジェクトアセットフォルダーも同様です。

Androidライブラリコードを伝える方法はありますか? いいえ アプリケーションのAssetsフォルダーで」?

役に立ちましたか?

解決

から Androidドキュメント:

図書館プロジェクトには、生産資産を含めることはできません

このツールは、ライブラリプロジェクトで生の資産ファイル(資産/ディレクトリに保存)の使用をサポートしていません。アプリケーションで使用される資産リソースは、アプリケーションプロジェクト自体の資産/ディレクトリに保存する必要があります。ただし、RES/ディレクトリに保存されているリソースファイルはサポートされています。

ライブラリプロジェクトのファイルを含める場合は、資産の代わりにリソースに入れる必要があります。ライブラリプロジェクトからHTMLファイルをWebViewにロードしようとしている場合、これは通常のAsset URLよりも多くのラウンドアバウトメソッドを作成する必要があることを意味します。代わりに、リソースデータを読み取り、次のようなものを使用する必要があります データを読み込む.

この答えはです 時代遅れ, 、 Gradleビルドシステム AARファイルは資産をサポートします。

他のヒント

これは、Gradleビルドシステムを使用して可能になりました。

Android GradleプラグインのAndroid Studio 0.5.0およびv0.9でテストして、私はそのようなファイルを発見しました

MyLibProject/src/main/assets/test.html

最終アプリケーションで正しくパッケージ化され、予想されるURLを介して実行時にアクセスできます。

file:///android_asset/test.html

わかった。私はしばらくの間、これについてストレスを感じ、眠りを失いました。 APIの作成を愛し、複雑な統合が嫌いな人のタイプです。

インターネット上には多くの解決策がありますので、Eclipse HackeryでIveが発見したことを非常に誇りに思っています。

Android Lib /Assetsフォルダーにファイルを配置すると、ターゲットAPKはこれをキャプチャし、APKアーカイブのルートに配置します。したがって、一般的なアクセスを失敗させます。これは、生のJavaライブラリを作成し、すべての資産をそこに配置するだけで解決できます。つまり、つまり(javalib)/assets/filex.txtです。

次に、これをプロジェクトのJavaビルドパスフォルダーソースとして含めることができます>プロパティ> Javaビルドパス>ソース>リンクソースを含めることができます。

  1. リンクソース
  2. 変数をクリックします。新しい変数、つまりvar_name_xを追加します。場所:../../RELETIVE_PATH_TO_ASSETS_PROJECT)
  3. OK]をクリックします

これで、アプリを構築して実行すると、APKのAssetsフォルダーには(グローバルライブラリ)ファイルが含まれます。

Androidの内部を再構成する必要はありません。そのすべてがEclipseの数回のクリック内で能力があります。

これを実現することで、ライブラリプロジェクトのディレクトリを指すプロジェクトのアセットフォルダーにシンボリックリンクを作成することができます。

次に、以下のようにアクセスできます。

webview.loadUrl("file:///android_asset/folder_in_a_libary_project/info.html", null);

Daniel Grantのアプローチは、少なくとも次の状況で機能することを確認します。ターゲットプロジェクトにはアセットフォルダーがない(またはフォルダーが空であるため、安全に削除できます)。変数をセットアップしませんでした。次のようにLinkSourceをセットアップするだけで(例です)リンクされたフォルダー場所:/home/matthew/workspace_moonblink/assetsforadvocacy/assetsフォルダー名:Assets

「AssetsForAdvocacy」は、空のSRCフォルダーを備えたJavaプロジェクト(New -Project -Java Projectで作成)と、ターゲットプロジェクトにAssetsフォルダー全体を提供する「Assets」という名前の新しいフォルダーです。

これは、Eclipse内のかなり簡単な方法であり、資産がまだない場合、多くの異なるプロジェクトで資産を再利用することができます。おそらく、長期的にはコンテンツプロバイダーになるように強化したいと思うでしょうが、それはもっと多くの開発です。

私のプロジェクトは、次のコードで資産にアクセスします。StringAdvocacyFolderInAssets= "no_smoking/"; //アセットの下のフォルダー/文字列fn = advocacyfolderinassets+imageFileName; Bitmap pristinebitmapforadvocacy = getBitMapFromAsset(Context、FN);

UbuntuでMotodev Studio 3.1.0を使用しています。ターゲットプロジェクトの既存のアセットフォルダーに、新しいアセットのみのプロジェクトに新しいアセットフォルダーを「マージ」することはできません。

1つのライブラリから複数の派生製品が作成されるセットアップを使用する場合は、SVN:externalsまたは同様のソリューションを使用することを検討してください。これにより、オンラインヘルプのような静的資産がAndroidソースコードから別々にバージョンされる可能性があるというトリックも行われます。

私は見つけました この古い質問, 、それもあなたを助けるかもしれません。

これは、Googleがこれをアーカイブするために使用する公式の方法です(上記の投稿から): リンク

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top