在android中创建系统服务

时间:2016-08-09 13:15:56

标签: android android-source

我尝试使用此链接https://github.com/nayobix/add-new-hardware-hal-android-5-lollipop实施自定义HAL,API和系统服务 (还检查了其他几个)

我按照每个指令和代码编写了system.img。

我正在使用Android 5.1.1源来构建系统映像。

但是当我在Android Studio中检查logcat时,设备无法启动。我发现系统服务没有加载。

08-09 11:32:27.123 160-160/? I/DEBUG: Abort message: 'art/runtime/jni_internal.cc:769] JNI FatalError called: Native registration unable to find class 'com/android/server/ZigbeeService'; aborting...'
08-09 11:32:27.123 160-160/? I/DEBUG:     #09 pc 000174bd  /system/lib/libandroid_servers.so (JNI_OnLoad+172)
08-09 11:32:27.336 20208-20208/? E/Zygote: Exit zygote because system server (20435) has terminated

同样在编译时,我收到了一些警告。

Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

2 个答案:

答案 0 :(得分:1)

解决了它。不得不从头开始,重建和编译整个来源。

github有点不对劲。实际上我必须创建另一个文件夹来放置服务java类文件。这就是为什么android无法找到它(根据调试消息)。

当你盲目追随别人的工作时,就会发生这种情况。谢谢你的帮助。

答案 1 :(得分:0)

该项目中的代码适用于5.0.1(Lollipop),您正在为5.1.1(也是Lollipop,但不同)构建。确保核心框架,HAL等文件只是使用此repo中的更改修补到您的AOSP而不是复制过来。如果您只是复制了此repo中的文件,则可能会清除在5.0.1和5.1.1之间添加到系统服务器或其他框架组件的内容。您很可能需要手动检查和修补文件。