Android编译错误:You have tried to change the API from what has been previously approved.

android SDK中有些JAVA类是开放的,有些是不开放的,API同样如此。这里所谓开放的类或API,只是javadoc的范畴,并不是java中public和private,也就是说,对于源码的编译无所谓,只是对javadoc的生成有影响关于类的开放和隐藏,但是对android的上层应用有影响,因为非开放的类或API,android上层应用无法直接访问。
类或API是否开放,是通过doc的注释{@hide}来控制的。比如android.media.Metadata 这个类就是android没有公开的类,因为在frameworks\base\media\libmedia\Metadata.java文件中,定义Metadata类之前有/**{@hide}*/此doc注释,所以Metadata类被定义为了非公开类,即是在android应用程序中无法直接访问的类。
但是如果我们在Android的公开类中添加了一些自定义的成员方法或成员变量,生成我们修改后的sdk(jar包)供上层应用程序使用,此时在编译源码生成SDK的过程中会出现这个问题:


You have tried to change the API from what has been previously approved.
To make these errors go away, you have two choices:

  1. You can add “@hide” javadoc comments to the methods, etc. listed
    in the
    errors above.
  2. You can update current.xml by executing the following commands:
    p4 edit frameworks/base/api/current.xml
    make update-api
    To check in the revised current.xml, you will need OWNERS
    approval.

google 给了两个选择:

  1. 在你添加的API或者变量前面,(在java类中找到自己定义的变量)增加javadoc 注释@hide。但是要注意的是,并不是简单写个@hide 或者 /@hide/ 就可以了,这些都是错误的javadoc注释格式,标准的javadoc都是这样的 /** / 而且对于 format 变量 应该加上 { }。
    所以我们应该这样写 /
    * {@hide} */
  2. 你就是想要生成的javadoc里面出现这个方法或者变量,你必须输入:
    make update-api
    但是如果修改的是google没有开放出来的类,比如RIL,PhoneFactory,就不会出现这个问题

You have tried to change the API from what has been previously approved相关推荐

  1. Android Input子系统-含实例源码

    Android Input子系统-含实例源码 1 Input子系统作用 Android很多外设都是用到输入输出设备,比如touchscreen,键盘,音量键等,输入 设备对应Android 框架是An ...

  2. android system image 编译出错,Android framework 编译常见错误

    常见错误: 1)  添加系统API或者修改@hide的API后,需要执行 make update-api,然后再make 2) 修改公共api后,需要 make update-api 比较framew ...

  3. Android从驱动到应用开发实例分析

    Android从驱动到应用开发实例分析 1. 第一个android应用程序 Android应用一般包含一个源代码目录src.一个资源目录res.一个配置文件AndroidManifest.xml.和一 ...

  4. android编译错误

    android编译错误遇到: [  0% 9/10750] Checking API:  checktestapi-current FAILED: /bin/bash -c "(( out/ ...

  5. MTK android11 新增按键流程(framework)

    以新增一个新按键F15为例 前提是bsp部分配置好GPIO相关部分,并在mtk-kpd.kl文件中配置新增按键,与framework的qwerty.kl相对应 a.  添加与BSP配置对应关系 fra ...

  6. Android P HAL层添加HIDL实例(详细实现步骤)

    Android P HAL层添加HIDL实例 本文是参照 https://www.jianshu.com/p/b80865c61d8e 教程介绍实现,原理请参考原作者. 本文将介绍如何在P OS上添加 ...

  7. AndroidP HIDL 转载

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/sinat_18179367/artic ...

  8. SettingsProvider简单分析

    SettingsProvider顾名思义是一个提供数据共享的Provider,SettingsProvider和Android系统其它Provider有很多不一样的地方: 1.SettingsProv ...

  9. Android Framework添加自定义服务和接口

    1.扩展Framework接口 1.1.定义Java接口 在 frameworks/base/core/java目录下,根据包名创建一个子目录,比如我创建的是com/wrtsz/api/,在该目录下, ...

  10. windows编译安卓源码记录

    环境 Windows10 + vmware17 + ubuntu22 ubuntu环境设置 装完ubuntu系统后拖拽复制文件进去验证vmtools功能情况,如果vmtools异常很麻烦,试了n多方法 ...

最新文章

  1. 在生产中使用Java 11:需要了解的重要事项
  2. 【IM】关于迁移学习的理解
  3. spring boot使用外置tomcat部署需要排除的依赖
  4. 广州程序员辞职创业卖菠萝油,放弃30万年薪
  5. 随想录(hls加速技术)
  6. 基于Heritrix+Lucene的搜索引擎构建(6)——搜索UI与结果页面
  7. mysql4.52_phpMyAdmin 4.5.0.2 发布下载,MySQL 管理工具
  8. 关于redis内存分析,内存优化
  9. 通信学会学术年会感受
  10. ESP8266教程4 — ESP8266 智能配网
  11. Word:退出即关机(转)
  12. 凯立德导航android历史版本,凯立德导航升级2020版
  13. 熊出没全集光头强的机器人_熊出没:其实光头强早就不想当伐木工了,这些细节足以说明一切...
  14. stata:第九章 时间序列数据回归:平稳变量
  15. js 获取两个数组的交集,并集,补集,差集(转载+收藏)
  16. 针对ewebeditor编辑器漏洞一次实战经验
  17. JAVA圆和正方形组合图形_关于java:图形数据流组合框架
  18. pycharm正则表达式检索
  19. BZOJ 1208 宠物收养所 Splay树
  20. c语言:输入三角形的三边,判断是否是直角三角形

热门文章

  1. js二(多)叉树算法
  2. C#网站发布在IIS10上,Access数据库读取为空白的解决方案
  3. 使用TryUpdateModel进行数据更新
  4. 毕业三年,同学基本都辞职了,大部分人看完很有同感~
  5. SQL重复记录处理(查找,过滤,删除)
  6. 博士招生 | 北京大学和中山大学博士申请考核还有名额,门槛不高,速来
  7. NLPCC 2021会议的“面向智能辩论的论辩文本理解”评测比赛综述报告
  8. 【IPM2020】一种处理多标签文本分类的新颖推理机制
  9. 【GNN】百度「NLP」面试的一点总结
  10. 从语言模型看Bert的善变与GPT的坚守