Во-первых, я использую NDK в MainActivity, он работает отлично .:java.lang.UnsatisfiedLinkError: Не удалось загрузить JNI-вход: findLibrary возвращается нуль
public class MainActivity extends AppCompatActivity {
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
EventInput eventInput=new EventInput();
textView.setText(eventInput.eventInject());// NDK
}
}
EventInput.java так:
public class EventInput {
static {
System.loadLibrary("jni-input");
}
public native String eventInject();
}
Затем я удалить MainActivity и в загрузки вещательного приемника я запуска службы и использовали NDK в service`s OnCreate метод, как это:
@Override
public void onCreate() {
super.onCreate();
try {
EventInput mockEvent=new EventInput();
Log.d("jni",mockEvent.eventInject());
}catch (Exception e){
e.printStackTrace();
}
}
И я толкаю его в/системы/приложения, чтобы сделать это будет системное приложение, которое будет слушать загрузочного Broadcast и запустить service.but он работает с:
java.lang.UnsatisfiedLinkError: Couldn't load jni-input: findLibrary returned null
Проверьте свое имя библиотеки, если это libjni-input.X или нет, и сохранен в папке lib проекта. – cagdas
Я проверил его. Это меня очень смутило. Если я начал службу в Activity, ndk можно использовать в сервисе. Но когда я удаляю Activity, ndk сообщает об ошибке, если она была использована в службе – helloliu
Мне интересно, apk в/system/app как работать с .so файлами? – helloliu