我正在尝试在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。
它发生在任何人面前吗?
请告知。
答案 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中