Существует четыре различных случая: один для корневого устройства, один для эмулятора, один для обычного устройства и один для корневого или обычного устройства.
На рутированном устройстве я смог заставить его работать так:
После того, как это устройство было перезагружено и при загрузке я вижу сообщение журнала:
Существует несколько способов включить 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 будут делать это автоматически для определенных типов сборки.