外部 Jar ファイルをロードする機能を必要とする Android アプリケーションがあります。私は瓶の場所を知っています。
Android API が提供する PathClassLoader クラスを試してみましたが、役に立ちませんでした。アクティビティ内から次のコードを使用しています:
String jarPath = "/sdcard/jars/testjar.jar";
PathClassLoader myClassLoader = new PathClassLoader(jarPath, ClassLoader.getSystemClassLoader());
try
{
Class<?> clazz = Class.forName("com.test.Class1", true, myClassLoader);
}
catch(Exception ex)
{
ex.printStackTrace();
}
PathClassLoader インスタンスをインスタンス化すると、Dalvik は「classes.dex」ファイルが見つからないというメッセージを LogCat に出力します。その後、「Class.forName」は「ClassNotFoundException」をスローします。
「classes.dex」ファイルを必要とせずに、外部の Jar ファイルからクラスをロードできる方法を見つけようとしています。Jar ファイルにはこのファイルは含まれていませんが、他のアプリケーションがクラスパスに Jar を使用してビルドされている場合、Dalvik はクラスを問題なくロードできます。
簡単に言えば、「classes.dex」を必要とせずに、外部の Jar ファイルからクラスをロードするにはどうすればよいでしょうか?
どうもありがとう、P
更新 Dalvik によって記録されたメッセージは
Zip は適切ですが、内部に classes.dex がなく、同じディレクトリに有効な .odex ファイルがありません