Android 更新系统api接口需要同时提交current.txt

修改framework/base下面的api要注意更新api/current.txt文件

更新android系统接口后,只是提交java文件会导致其他人编译不通过,需要提交/framework/base/api下面更新的三个问文件:

如果修改了Android原有API的 ,需要update frameworks/base/api/current.txt。否则编译被中断并出现编译错误提示。

否则,编译时会报以下错误:

frameworks/base/services/java/com/android/server/SystemServer.java:592: cannot find symbol
symbol  : variable PPPOE_SERVICE
location: class android.content.Context

可以通过运行 make update-api 后,自动更新此文件,检查确认正确后,跟代码一起提交即可。

切记:不能手动更改api/current.txt文件去更新。
--------------------------------------------------------------------------------------------------------------------------------------

当我们对framework/base/下新增aidl,也就是新增向上api的时候,编译容易出现以下的错误:

frameworks/base/api/system-current.txt:25031: error 8: Removed public class android.os.IXxxService
frameworks/base/api/system-current.txt:25036: error 8: Removed public class android.os.IXxxService.Stub
out/target/common/obj/PACKAGING/system-api.txt:25035: error 3: Added class IXxxService to package android.os
out/target/common/obj/PACKAGING/system-api.txt:25040: error 3: Added class IXxxService.Stub to package android.os

这是因为新增或者修改的api没有及时同步到/frameworks/base/api/system-current.txt文件中,这个时候编译会失败。还有有以下的提示:

******************************
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.txt by executing the following command:
         make update-api

To submit the revised current.txt to the main Android repository,
      you will need approval.
******************************

这个时候我们就需要先执行:

# make update-api

进行同步,再对代码进行编译便可解决上面的问题。
-------------------------------------------------------------------------------------------------------------------------------------

何时需要执行make update-api命令

添加系统API或者修改@hide的API后,需要执行
make update-api,然后再make
修改公共api后,需要
make update-api

1、在修改完系统Api或部分公共Api后(常见于修改Intent.java、KeyEvent.java等等),执行源码编译时会有如下提示
see build/core/apicheck_msg_current.txt
******************************
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.txt by executing the following command:
make update-api

To submit the revised current.txt to the main Android repository,
you will need approval.
******************************
2、错误信息表明是由于API错误导致
谷歌对于所有的类和API,分为开放和非开放两种:而开放的类和API,可以通过“Javadoc标签”与源码同步生成“程序的开发文档”;当我们修改或者添加一个新的API时,我们有两种方案可以避免出现上述错误.

一是将该接口加上 非公开的标签:/*{@hide}/;
二可以在修改后执行:make update-api(公开),将修改内容与API的doc文件更新到一致。
3、解决办法:
执行: make update -api ;
修改后相应API文件后,在base库下面会产生“.current.txt”文件的差异,提交时将该差异一并提交审核即可。

原文地址:https://www.cnblogs.com/yangjj08/p/11286956.html

时间: 2024-10-11 15:38:31

Android 更新系统api接口需要同时提交current.txt的相关文章

[转载]android常用的API接口调用

原文地址:android常用的API接口调用作者:宋耀 显示网页:         Uri uri = Uri.parse("http://www.google.com"); Intent it = new Intent(Intent.ACTION_VIEW,uri); startActivity(it);显示地图: Uri uri = Uri.parse("geo:38.899533,-77.036476"); //Uri uri = Uri.parse(&quo

android框架Java API接口总注释/**@hide*/和internal API

Android有两种类型的API是不能经由SDK访问的 l 第一种是位于com.android.internal包中的API我,位于frameworks/base/core/java/com/android/internal/.我将称之为internal API. l 第二种API类型是一系列被标记为@hide属性的类和方法.从严格意义上来讲,这不是一个单一的API和类,而是一些的被隐藏的API和类,称之为hidden API Internal和hidden API的区别 Hidden API之

Android 网络编程 API笔记 - java.net 包相关 接口 api

Android 网络编程相关的包 : 9 包, 20 接口, 103 类, 6 枚举, 14异常; -- Java包 : java.net 包 (6接口, 34类, 2枚举, 12异常); -- Android包 : android.net 包 (1接口, 19类, 3枚举, 1异常), android.net.http 包 (6类), android.net.nsd 包 (3接口, 2类), android.net.rtp (4类), android.net.sip 包 (1接口, 9类, 1

Django项目:CMDB(服务器硬件资产自动采集系统)--02--02CMDB将服务器基本信息提交到API接口

AutoCmdb 1 # urls.py 2 """AutoCmdb URL Configuration 3 4 The `urlpatterns` list routes URLs to views. For more information please see: 5 https://docs.djangoproject.com/en/2.0/topics/http/urls/ 6 Examples: 7 Function views 8 1. Add an import

Android属性动画与自定义View——实现vivo x6更新系统的动画效果

晚上好,现在是凌晨两点半,然后我还在写代码.电脑里播放着<凌晨两点半>,晚上写代码,脑子更清醒,思路更清晰. 今天聊聊属性动画和自定义View搭配使用,前面都讲到自定义View和属性动画,但是一起用的还是不多,刚巧今晚手机提示我更新系统,我看到那个更新的动画还不错,仔细的分析了一下,于是我也决定写一个,不是一模一样的,但是效果和原理是一样的. 先看看图: 这是一张静态的图,这里有三个波浪线,当下载完之后,波浪线会往上活动,一直到消失. 所以难点也是在这个波浪线上.这个波浪线类似于一个水波纹,也

Android测试工具ThreadingTest开放API接口说明

ThreadingTest(简称TT)第一期是一款Android白盒测试工具,使用离线检测的方式,在保护用户源代码的基础上,运用插装.第五代覆盖率等技术,为开发工程师与测试工程师提供一套高效可量化.可视化的交流工具.对比其它测试工具,TT在自动化测试时,会对应测试用例自动生成测试用例和代码之间的关系以及函数覆盖率,并且以TT自带的双向追溯图进行展示,在整个自动化测试进行过程中,TT还会以示波器界面可视化的监控整个自动化测试中每时每刻获取的测试数据. 基于其它测试工具测试时,TT还开放了API接口

远程开户系统开放API接口

如今随着智能识别技术的成熟和商用,金融领域也开始逐渐试水"远程开户".从OCR身份证识别到人脸识别,到如今市场上即将出现完整的远程开户系统,除了需要成熟的技术做支撑外,还需要对市场有着前瞻性的眼光. 这套远程开户系统包含了OCR身份证识别技术.银行卡识别技术.人脸识别等智能识别技术.即利用身份证识别快速采集验证用户身份,并通过联网核查进行验证身份信息,用来核实用户的真实身份;然后利用银行卡识别一键绑定银行卡,再辅以视频人脸识别进行身份进一步验证,确保开户者与证件持有者为同一人,做到人证

android应用对系统API版本号的选择介绍

转载请注明出处[http://blog.csdn.net/y150481863/article/details/41280045] 首先我们在开发一个应用之前,特别是一个android应用,首先要考虑这个系统是运行在android版本为2.3的系统上,还是4.0的系统上或者说是支持所有android版本的系统. 有了这样的决定之后,接下来我们就需要做点事了,需要告诉系统你当前应用所能兼容的系统版本是多少,从而系统决定是否能有效并成功安装你的应用. 这就是android project中Manif

Android 网络开发免费API接口

http://www.juhe.cn/                              聚合数据              目前很多接口都收费 https://www.showapi.com                      易源接口              存在收费项                            API接口少 http://apistore.baidu.com/                     百度API集市 http://www.atoo