【问题标题】:Creating system service in android在android中创建系统服务
【发布时间】:2016-08-09 13:15:56
【问题描述】:

我尝试使用此链接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.

【问题讨论】:

  • 您是否尝试过从头开始构建整个源代码? @贾芬MK
  • 感谢您的回复。是的,我做了,我做了'make update-api'然后'make -j8'来编译和构建system.img文件
  • 我感觉到了。我用代码做的一切都是正确的,但问题在于编译源代码。我收到的警告。 java编译出错了??
  • 我建议首先编译整个源代码,因为您可能会使用改变“system.img”的 API,并尝试在没有代码的情况下将其全部闪存到设备,然后再使用您的代码.
  • 哎呀你是对的。即使没有我的代码,源代码也不会被编译。就是那些警告。我在一两天前编译了它并且它正在工作我不确定 Ubuntu 是否进行了一些更新并破坏了构建环境。

标签: android android-source


【解决方案1】:

解决了。必须从头开始,重建和编译整个源代码。

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

当你盲目地跟随别人的工作时会发生这种情况。谢谢大家的帮助。

【讨论】:

  • 您应该将自己的答案标记为正确,以便在访问此页面时很容易看到。
  • 我是新用户。感谢您的提示。
  • @jcxmej 你能提供教程你做了什么,因为我是新来的,想实现同样的......
【解决方案2】:

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

【讨论】:

  • 感谢您的回复。我没有从链接复制粘贴任何文件。我从链接中插入了相关代码并修改了现有文件。并在必要时创建新文件。以前存在的东西仍然如此。我只添加了一些东西。但我不确定我是否添加了错误的文件夹或错误的文件。但我交叉检查了其他链接,这些链接告诉我相同。
  • 您还可以在编译源代码时告知这些警告是什么。如果这可能是所有这些混乱背后的原因?
  • 在构建 AOSP 时,这些警告很正常,您不必担心它们。当您抓取 AOSP 时,您确定您是从发布标签而不是 master 分支中抓取 5.1.1 吗? master 分支通常被认为是不稳定的。对于@JaffinMK 的上述观点,您可能希望首先构建库存 AOSP,并在添加补丁/更改之前验证您的基础构建是否良好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-17
  • 2015-06-14
  • 1970-01-01
  • 2020-03-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多