可能性の重複:アンドロイドでJNIEnv-> FindClassが()はJNI_OnLoadをして失敗し
How do I load my own Java class in C on Android?
Application works in debug/run from Eclipse, but .APK gives .classNotFoundException when parsing XML layout that contains a custom View
System.loadLibrary("testlib");
ネイティブライブラリを読み込む。 JNI_OnLoadは()関数で 、Javaのグルーコードのクラスを見つけようとしている:
JNIEXPORT jint JNI_OnLoad(JavaVM *vm, void *reserved) {
JNIEnv *env;
jclass k;
jint r;
r = vm->GetEnv ((void **) &env, JNI_VERSION_1_4);
k = env->FindClass ("com/test/android/aclass");
FindClassが()は失敗し、NoClassDefFoundErrorが例外をスローします。 CコードからJavaクラスを見ることができないのはなぜですか?
別のテストアプリケーションでこの同じライブラリを使用していますが、これは動作します(ライブラリが動作すると確信しています)。なぜ私は1つのアプリがJavaクラスを見つけることができないのか、他のアプリはできないのか分かりません。
'COM /テスト/アンドロイド/ aclass'クラスが定義されています。私はここに解決策を見つけた
?プロジェクト自体の中か、混在しているjarファイルですか? – Femi
プロジェクト自体です。 – bubba
良い記事 - リンクありがとう。しかし、私の問題はproguard.cfgでした。私がプロガードを無効にしたとき、今は働いています。 – bubba