我正在尝试使用我自己的系统服务添加自定义ROM [来自CyanogenMod源代码]。我创建了接口(.aidl)并在java中编写了myserver。 system_server添加我的服务并在系统启动期间启动它没有任何问题。我有一个用c编写的代码,我想从我的服务中使用它。
我尝试做的第一件事是:
/frameworks/base/services/jni/com_android_server_MyService.cpp
/* includes and namespace ... */
static jint android_server_MyService_initialize(JNIEnv* env, jobject obj)
{
return 10;
}
static JNINativeMethod sMethods[] = {
{"initialize", "()I", (void*)android_server_MyService_initialize}
};
int register_android_server_MyService(JNIEnv* env){
return jniRegisterNativeMethods(env, "com/android/server/INSAService", sMethods, NELEM(sMethods));
}
...在相应的Android.mk中添加了上述文件作为源
它构建没有任何问题,但我从我的服务(Java部分)
访问此方法时遇到问题调用我的本机方法会导致出现以下错误消息的问题
w/dalvikvm( 278): No implementation found for native Lcom/android/server/MyService;.native_initialize:()V