首先,我在MainActivity中使用NDK,它工作正常。:
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 onCreate方法< / em> ,像这样:
@Override
public void onCreate() {
super.onCreate();
try {
EventInput mockEvent=new EventInput();
Log.d("jni",mockEvent.eventInject());
}catch (Exception e){
e.printStackTrace();
}
}
我将它推送到/ system / app使其成为一个系统应用程序,它将监听 启动广播 并启动该服务。但它运行时:< / p>
java.lang.UnsatisfiedLinkError: Couldn't load jni-input: findLibrary returned null
答案 0 :(得分:0)
/vender/lib
和/ system/lib
,这是加载.so
文件的搜索路径。所以,它适用于我将.so file
推入/ system / lib。