2

クラス ライブラリを参照するモノドロイド アプリケーションで、モノドロイド クラス ライブラリから (ビルド アクション "AndroidAsset" を使用して) ファイルにアクセスすることは可能ですか?

クラス lib に「Assets」フォルダーを作成し、ビルド アクション「AndroidAsset」でテキスト ファイルを追加しましたが、アプリから Assets.Open("file.txt"); 経由でアクセスできませんでした。

クラスライブラリとメインアプリケーションのアセットが何らかの形で「マージ」されることを望んでいました...

4

4 に答える 4

1

いいえ、クラス ライブラリからアセットにアクセスすることはできません。メインの exe プロジェクトからのみアクセスできます。

これは、Java Android プロジェクトの状況に似ています。


これを回避する 1 つの方法は、代わりに埋め込みリソースを使用することです。xamarin のフォーラムで私が尋ねたこの質問に対する回答を参照してください - http://forums.xamarin.com/discussion/186/is-there-a-cross-platform-way to-include-string-resources-from-class-library-projects - まだ試していないことに注意してください

于 2012-10-27T22:46:45.097 に答える
0

クラス ライブラリを参照するモノドロイド アプリケーションで、モノドロイド クラス ライブラリから (ビルド アクション "AndroidAsset" を使用して) ファイルにアクセスすることは可能ですか?

はい。Context.Assets.Openを介して「通常どおり」アクセスするだけです。アプリケーションにはアセットのソースが 1 つしかないため、コンポーネントがインスタンスにアクセスできる場合、どのコンポーネントもすべてのアセットにアクセスできAssetManagerます。

ただし、それはあなたが求めていることを額面通りに受け取っているだけです。ライブラリ プロジェクトでContext.Assetsプロパティを使用できますか? Context確かに、インスタンスを提供すれば。

しかし、Library プロジェクトは、アプリケーションに含める独自のアセットを提供できますか? いいえ。

クラス lib に「Assets」フォルダーを作成し、ビルド アクション「AndroidAsset」でテキスト ファイルを追加しましたが、アプリから Assets.Open("file.txt"); 経由でアクセスできませんでした。

ライブラリ プロジェクトは、より大きなアプリケーションに含まれるアセットを提供できません。Javaもこれをサポートしていません。

于 2012-10-29T19:02:09.430 に答える