5

ここで何か不足している場合は、誰か教えてもらえますか? シェルで次のコマンドを試しています。

$ ./adb shell stop
$ ./adb shell setprop dalvik.vm.checkjni true
$ ./adb shell start

しかし、apk をデバイスにインストールすると、Logcat は常に「CheckJNI is OFF」と表示します。
XCheck:Jni フラグを有効にするために、Eclipse で他に何かする必要がありますか?

助けてくれてありがとうBD

4

3 に答える 3

7

ルート化されたデバイス用、エミュレーター用、通常のデバイス用、ルート化されたデバイスまたは通常のデバイス用の 4 つのケースがあります。


ルート化されたデバイスでは、次のように機能させることができました。

adb で:

adb shell

このシェルの後に起動:

su
stop
setprop dalvik.vm.checkjni true
start

このデバイスを再起動した後、起動時に次のログ メッセージが表示されます。

CheckJNI is ON



他のケースについては、公式ドキュメントのいくつかの理論を参照してください。

CheckJNI を有効にする方法はいくつかあります。

エミュレーターを使用している場合、CheckJNI はデフォルトでオンになっています。

ルート化されたデバイスがある場合は、次の一連のコマンドを使用して、CheckJNI を有効にしてランタイムを再起動できます。

adb shell stop
adb shell setprop dalvik.vm.checkjni true
adb shell start

どちらの場合でも、ランタイムの開始時に logcat の出力に次のようなものが表示されます。

D AndroidRuntime: CheckJNI is ON

通常のデバイスがある場合は、次のコマンドを使用できます。

adb shell setprop debug.checkjni 1

これは既に実行中のアプリには影響しませんが、その時点から起動されたすべてのアプリで CheckJNI が有効になります。(プロパティを他の値に変更するか、単純に再起動すると CheckJNI が再び無効になります。) この場合、次回アプリを起動したときに、logcat の出力に次のような内容が表示されます。

D Late-enabling CheckJNI

アプリのマニフェストでandroid:debuggable属性を設定して、アプリに対してのみ CheckJNI を有効にすることもできます。Android ビルド ツールは、特定のビルド タイプに対してこれを自動的に行うことに注意してください。

于 2012-09-21T09:27:02.987 に答える
3

すべての代替方法については、http://android-developers.blogspot.com/2011/07/debugging-android-jni-with-checkjni.htmlを参照してください。

于 2010-01-11T16:37:02.690 に答える
0

ここにも checkJNI の使用方法に関するセクションがあります。

http://www.netmite.com/android/mydroid/dalvik/docs/embedded-vm-control.html

于 2011-11-09T00:45:57.783 に答える