Android Dragon board 820 - 添加系统服务

时间:2016-08-19 13:05:38

标签: android java-native-interface

我正在尝试在6.0.1中添加Android系统服务。

我实现了添加Android系统服务的示例。 Android系统可以毫无错误地构建所有内容。

但是在尝试注册JNI类方法时,我总是在运行时遇到异常。

在以下部分中:

int register_android_server_xxxService(JNIEnv *env)
{
    return jniRegisterNativeMethods(env, "com/android/server/xxxService",
    method_table, NELEM(method_table));
};

系统无法找到班级。

是设备启动日志:

  

art:拒绝先前失败的类重新初始化   java.lang.Class中

     

01-01 00:58:16.319 2806 2806我是艺术:拒绝重新启动   先前失败的类java.lang.Class

     

01-01 00:58:16.334 2806 2806 W SystemServer:系统时钟在之前   1970;设定为1970年。

     

01-01 00:58:16.335 2806 2806 I SystemServer:进入Android   系统服务器!

     

01-01 00:58:16.355 2806 2806我是艺术:拒绝重新启动   先前失败的类java.lang.Class

     

01-01 00:58:16.356 2806 2806艺术:   art / runtime / jni_internal.cc:497] JNI FatalError调用:Native   注册无法找到类'com / android / server / xxxService';   中止...

我尝试了一些示例但总是相同的结果,我正在使用msm8996编译Android 6.0.1。

它发生在任何人面前吗?

请告知。

1 个答案:

答案 0 :(得分:0)

我遇到了类似的错误,原因是没有将java文件放在正确的位置并正确定义路径。你可以试试这个。

int register_android_server_xxxService(JNIEnv *env)
{
return jniRegisterNativeMethods(env, "com/android/server/xxx/xxxService",
method_table, NELEM(method_table));
};

将xxxService.java文件放在frameworks / base / services / core / java / com / android / server / xxx / xxxService.java中