启动android后没有应用图标,找不到应用程序

最近在做基于6410的led应用程序移植编译后发现目标系统启动后找不到两个应用程序的图标。仔细阅读logcat输出的信息发现提示:

E/PackageManager( 167): Package com.led requires unavailable shared library forlinx_led_server.server; failing! 

原因是找不到 forlinx_led_server.server。检查应用程序目录下Android.mk发现系统将LedManager和LedService编译成 forlinx_led.jar库文件。为了让应用程序可以访问到这个库,需要通过forlinx_led_server.server.xml来设定其对应关系。
解决方法:拷贝forlinx_led_server.server.xml到目标系统的system/etc/permissions/目录
此时应用程序的图标就可以正常出现。

但这是通过终端手动加到相应目录下的,要是想编译到文件系统里面,该如何实现?

几经对比,发现在vendor/xxxx/common目录下少移植了一压缩包ForlinxLEDTest.tar.gz,但将其复制到对应目录后再编译,在rootfs_dir\system\etc\permissions目录下还是没有生成forlinx_led_server.server.xml。对比分析后发现没有系统对ForlinxLEDTest.tar.gz没有执行操作。

解决办法:目标android系统在编译后要执行./genimages.sh来打包成.img镜像,通过查看genimages.sh按照里面的格式加了一句:tar zxvf ./ForlinxLEDTest.tar.gz -C ./rootfs_dir/system/etc/permissions,根据语句把ForlinxLEDTest.tar.gz放在根目录下,再编译就OK了,此时一启动系统就可以看到菜单上的应用程序图标了。

你可能感兴趣的:(android,android,permissions,library,system,终端)