これは、さまざまな成功の状態で何度か話されてきましたが、私が見つけることができる答えのほとんどは、数年前のものです.
基本的に、顧客と共有されていないところまで移動したアプリケーションがあります。顧客はアプリケーションを拡張したいと考えていますが、元のコードにアクセスしてほしくないため、IP をすべて保護しています。
レイアウト、画像など...まあ、それらはあまり気にせず、Java コードだけを気にします。Java コードを jar にコンパイルして配布することは簡単にできますが、それは答えの半分にすぎません。Java コードは依然として内部リソースの山全体を参照しています。
私が取り組んでいるシナリオはjarファイルで、以下が含まれています:
Jar ファイル - MyActivity は Activity を拡張します - MyActivity 内の onCreate() は、jar ファイル内から contentView を R 参照レイアウトに設定します。
クライアント アプリケーション - MyClientActivity は MyActivity を拡張します
これを実行すると、MyClientActivity で ClassNotFoundException が発生します。
私が気付いたこと: - jar ファイルの代わりにライブラリとして jar コードを添付すると、機能します。- MyActivity の onCreate() 内の R 参照を削除して、jar ファイルを作り直すと、機能します。
したがって、明らかに、前に指摘したように、R 参照は無効であるか、アクセスできません。問題は、これは明らかにうまくいくということですよね?Android アプリケーションを作成し、自動インクルード API を見ると、android.jar ファイルには R ファイルがあり、そのコード内から参照されている内部レイアウト/文字列/etc... が含まれています。
他の人が以前に言ったように、これは非常に基本的で明白な使用パターンのようです。一見うまくいかないという事実は、実際にはうまくいくと信じ込ませるのに十分なほど気が遠くなるようなものであり、明らかな方法で行われていないだけです.
誰かが実際にそれを機能させたことがありますか?
どうもありがとう、
-コード・オートリー