1

NDK を使用してビルドしたネイティブ C/C++ ファイルを含むアプリの実行を許可しないというメッセージが表示されます。アプリが閉じて再び開き、ループでクラッシュします。android.mk C:/android-ndk-r8/build/core/add-application.mk 128:Android NDK : 警告: APP-PLATFORM android-14 is large than android:minsdkVersion 8 in ./AndroidManifest.xml

それに関連する関連スレッドを確認しましたが、役立つものは見つかりませんでした。誰でも私を助けてくれませんか、私がここで欠けているもの。

Logcat 出力:

15:44:15.815: E/Trace(3026): error opening trace file: No such file or directory (2)
05-28 15:44:16.007: D/dalvikvm(3026): Trying to load lib /data/app-lib/com.example.raptorjni-2/libraptorq-test.so 0x40ce6428
05-28 15:44:16.035: D/dalvikvm(3026): Added shared lib /data/app-lib/com.example.raptorjni-2/libraptorq-test.so 0x40ce6428
05-28 15:44:16.035: D/dalvikvm(3026): No JNI_OnLoad found in /data/app-lib/com.example.raptorjni-2/libraptorq-test.so 0x40ce6428, skipping init
05-28 15:44:16.255: D/RaptorQ(3026): Entering the main function

C 関数が呼び出される場所からの Java メイン ファイル スニペット:

   Log.d(TAG,"isteps Ecoded" + isteps);
        /* Call the JNI-ized version of DFRQEncPerfTest */
        String res = 
        resultRQEncPerfString(nSrcSymbols, symbolSize, loss, niter,
                      mode, 0, header);

.C ファイル関数スニペット:

jstring 
Java_com_example_raptorjni_RaptorJni_resultRQEncPerfString
  (JNIEnv *env, jobject thiz, 
   jint nSrcSymbols, jint symbolSize, jint lossrate, jint nLoop, 
   jint mode, jint nRepair, jint header)
{   

  Implementation ....
4

1 に答える 1

3

JNI_Onloadは、JNI 1.4 以降に導入されたオプションの初期化関数 (多かれ少なかれ) であり、ライブラリがロードされている間に開発者がいくつかの初期化ジョブを実行できるようにします (たとえば、ネイティブ メソッドを jvm に登録します)。

したがって、c/c++ でネイティブな Java メソッドを実装するのに javah などのばかげたものは本当に必要ありませJNIEnv::registerNativesJNI_Onload

この問題については、何か他のことが間違っていたと思います。

于 2013-05-29T07:16:04.607 に答える