为android开放类增加自定义成员方法,解决@hide问题
2013-08-08 21:43
274 查看
android SDK中有些JAVA类是开放的,有些是不开放的,API同样如此。这里所谓开放的类或API,只是javadoc的范畴,并不是java中public和private,也就是说,对于源码的编译无所谓,但是对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或者变量前面,增加javadoc 注释@hide。但是要注意的是,并不是简单写个@hide 或者 /*@hide*/ 就可以了,这些都是错误的javadoc注释格式,标准的javadoc都是这样的 /** */ 而且对于 format 变量 应该加上 { }。
所以我们应该这样写 /** {@hide} */
2. 你就是想要生成的javadoc里面出现这个方法或者变量,你必须输入:
make update-api
但是如果修改的是google没有开放出来的类,比如RIL,PhoneFactory,就不会出现这个问题
转载地址
类或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或者变量前面,增加javadoc 注释@hide。但是要注意的是,并不是简单写个@hide 或者 /*@hide*/ 就可以了,这些都是错误的javadoc注释格式,标准的javadoc都是这样的 /** */ 而且对于 format 变量 应该加上 { }。
所以我们应该这样写 /** {@hide} */
2. 你就是想要生成的javadoc里面出现这个方法或者变量,你必须输入:
make update-api
但是如果修改的是google没有开放出来的类,比如RIL,PhoneFactory,就不会出现这个问题
转载地址
相关文章推荐
- 为android开放类增加自定义成员方法[转]
- 为android开放类增加自定义成员方法
- 为android开放类增加自定义成员方法
- [转]Android fragment 重叠问题——通过hide,show方式导致的解决方法
- Android fragment 重叠问题——通过hide,show方式导致的解决方法
- Android fragment 重叠问题——通过hide,show方式导致的解决方法(未解决)
- Android fragment 重叠问题——通过hide,show方式导致的解决方法
- Android fragment 重叠问题——通过hide,show方式导致的解决方法
- android 自定义键盘碰到的问题及解决方法
- Android fragment 重叠问题——通过hide,show方式导致的解决方法
- 左边导航条动态增加或缩短高度以及放大缩小问题的解决方法
- 关于Mac系统下某些Android设备无法被adb识别问题的解决方法
- 彻底解决Android 应用方法数不能超过65K的问题
- Android 使用android-support-multidex解决Dex超出方法数的限制问题,让你的应用不再爆棚
- Android项目源码混淆问题解决方法
- 解决Android自定义多选ListView乱序问题
- Android 的一些基本问题解决方法(android studio)
- 编译 Android-2.1出现的问题,和解决方法。
- Android解决Dex超出方法数限制的问题
- android 自定义ListView 使其带单选框按钮,并解决item点击不响应的问题