-1

Android アプリケーションで実行時に JAR ファイルからクラスをロードしようとしています。私はそれに DexClassLoader を使用しています。

以下の手順のように実行しています: - 一部の JAR ファイルが、ハードディスクのメモリ ロケーションに存在します。そのJARからdexファイルを準備し、アプリケーションのappdexフォルダーに保存しています。次に、DexClassLoader を使用してクラスをロードし、クラスのインスタンスを作成し、Interface を使用してそのメソッドを呼び出しています。

問題 - Android プロジェクト (Eclipse 上) の libs フォルダーに JAR ファイルを含めている場合にのみ機能します。libs フォルダーから JAR ファイルを削除すると、loadClass() メソッドの呼び出し中に ClassNotFoundException がスローされます。理想的には、libs フォルダーに JAR を含めなくても機能するはずです。その依存関係を(libsフォルダーから)削除したい。

何か不足していますか?

PS - JAR を作成してプラグインとして使用する別の Android プロジェクトを作成しました。

4

1 に答える 1

1

dexこのエラーは、ファイルに指定したパスが正しくないことが原因であると思われます。

この質問への回答を参照してください: android dexclassloader get list of all classes。パスが正しくない場合、提案されたアプローチでは例外が発生します。

于 2013-08-08T01:21:09.760 に答える