安卓app import android.os.servicemanager遇到的问题

来源:互联网 发布:知乎的图标设计 编辑:程序博客网 时间:2024/05/17 23:07

   学习罗升阳老师的用app调用自己编写的framework的过程中,遇到了在import android.os.manager时,编译一直不过。我是将app原工程文件放在安卓源码的package/expermental目录下进行mmm 的编译方式。一直报错


packages/experimental/CGpuSettingV3.5/src/com/asus/frequencychangerv/MainActivity.java:15: 找不到符号
符号: 类 ServiceManager
位置: 软件包 android.os
import android.os.ServiceManager;
                 ^
1 错误
make: *** [out/target/common/obj/APPS/FrequencyChangerV3.5_intermediates/classes-full-debug.jar] 错误 41


等解决了这个问题再发下半部分


最终的答案来了,虽然我是copy了罗老师的代码,但是在android.mk文件上偷懒copy了一个其他app的,其中的一句话出了问题:LOCAL_SDK_VERSION := current

这句话的作用sdk版本不能是current,否则@hide的api无法调用到!!!这个解释很模糊。

Hidden API之所以被隐藏,是想阻止开发者使用SDK中那些未完成或不稳定的部分(接口或架构)。当这些API被验证和清理后,Google的开发者会移除@hide属性,并让其在API 5官方化。很多地方在API 4 和5之间发生了变化。如果你的程序依赖某些隐藏的API,当其部署到新的平台上时,就有可能陷入困境。

具体详情参考:http://blog.csdn.net/linghu_java/article/details/8283042




0 0