android : 修改frameworks/base/ 代码需要注意的地方

本文介绍在修改Android源码中API时的注意事项及流程。强调修改原有API后需更新current.xml文件,并通过make update-api命令自动完成更新。此外,还提到了提交变更时所需的审批流程。



需要修改frameworks/base/下的代码,请注意 :如果修改了Android原有API的 ,需要update frameworks/base/api/current.xml。否则编译被中断并出现下面提示。 
可以通过运行 make update-api 后,自动更新此文件,检查确认正确后,跟代码一起提交即可。
Note: 本周碰到这样case ,是因为修改了: M frameworks/base/core/java/android/provider/Contacts.java 

Install: out/host/linux-x86/bin/apicheck
Checking API: checkapi-last
Checking API: checkapi-current
*******************************************************************************
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.
******************************************************************************************

[ 56% 5771/10132] //external/python/cpython3/Lib:py3-stdlib Precompile the python sources of py3-stdlib [linux_glibc] FAILED: out/soong/.intermediates/external/python/cpython3/Lib/py3-stdlib/linux_glibc_x86_64_PY3/py3-stdlib.srcszipprecompiled LD_LIBRARY_PATH="out/soong/.intermediates/external/sqlite/dist/libsqlite/linux_glibc_x86_64_shared" PYTHONPATH=out/soong/.intermediates/external/python/cpython3/Lib/py3-stdlib/linux_glibc_x86_64_PY3/py3-stdlib.py.srcszip/internal/stdlib out/soong/.intermediates/prebuilts/build-tools/prebuilt_py3-launcher/linux_glibc_x86_64/py3-launcher build/soong/python/scripts/precompile_python.py out/soong/.intermediates/external/python/cpython3/Lib/py3-stdlib/linux_glibc_x86_64_PY3/py3-stdlib.py.srcszip out/soong/.intermediates/external/python/cpython3/Lib/py3-stdlib/linux_glibc_x86_64_PY3/py3-stdlib.srcszipprecompiled /bin/sh: 1: out/soong/.intermediates/prebuilts/build-tools/prebuilt_py3-launcher/linux_glibc_x86_64/py3-launcher: not found [ 57% 5796/10132] //frameworks/base:platformprotos protoc 5 [linux_glibc common] frameworks/base/core/proto/android/server/usagestatsservice.proto:20:1: warning: Import frameworks/base/core/proto/android/privacy.proto is unused. frameworks/base/core/proto/android/server/windowmanagertransitiontrace.proto:21:1: warning: Import frameworks/base/core/proto/android/server/windowmanagerservice.proto is unused. [ 57% 5797/10132] //frameworks/base:platformprotos protoc 4 [linux_glibc common] frameworks/base/core/proto/android/nfc/nfc_service.proto:23:1: warning: Import frameworks/base/core/proto/android/nfc/ndef.proto is unused. frameworks/base/core/proto/android/os/batteryusagestats.proto:22:1: warning: Import frameworks/proto_logging/stats/enums/os/enums.proto is unused. frameworks/base/core/proto/android/server/accessibility.proto:19:1: warning: Import frameworks/base/core/proto/android/typedef.proto is unused. [ 57% 5799/10132] //frameworks/base:platformprotos protoc 0 [linux_glibc common] frameworks/proto_logging/stats/atoms/display/display_atoms.proto:22:1: warning: Import frameworks/proto_logging/stats/enums/display/enums.proto is unused. 15:36:45 ninja failed with: exit status 1 编译报错,请分析解决
最新发布
11-25
报错FAILED: out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes-full-debug.jar /bin/bash out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes-full-debug.jar.rsp frameworks/base/core/java/android/os/NvRAMAgent.java:261: error: class, interface, or enum expected public byte[] readFile(int file_lid) throws android.os.RemoteException; ^ frameworks/base/core/java/android/os/NvRAMAgent.java:262: error: class, interface, or enum expected public int writeFile(int file_lid, byte[] buff) throws android.os.RemoteException; ^ frameworks/base/core/java/android/os/NvRAMAgent.java:263: error: class, interface, or enum expected public byte[] readFileByName(String filename) throws android.os.RemoteException; ^ frameworks/base/core/java/android/os/NvRAMAgent.java:264: error: class, interface, or enum expected public int writeFileByName(String filename, byte[] buff) throws android.os.RemoteException; ^ frameworks/base/core/java/android/os/NvRAMAgent.java:265: error: class, interface, or enum expected } ^ 5 errors [ 0% 10/1589] Building with Jack: out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex FAILED: out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex /bin/bash out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex.rsp ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMAgent.java:50.31: The public type Stub must be defined in its own file ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMAgent.java:50.31: Illegal modifier for the class Stub; only public, abstract & final are permitted ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMAgent.java:50.73: NvRAMAgent cannot be resolved to a type ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMAgent.java:56.9: The method attachInterface(IInterface, String) in the type Binder is not applicable for the arguments (Stub, String) ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMAgent.java:63.17: NvRAMAgent cannot be resolved to a type ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMAgent.java:70.38: NvRAMAgent cannot be resolved to a type ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMAgent.java:71.14: NvRAMAgent cannot be resolved to a type ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMAgent.java:74.15: NvRAMAgent cannot be resolved to a type ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMAgent.java:144.41: NvRAMAgent cannot be resolved to a type ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMAgent.java:255.42: IBinder cannot be resolved to a variable ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMAgent.java:256.43: IBinder cannot be resolved to a variable ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMAgent.java:257.48: IBinder cannot be resolved to a variable ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMAgent.java:258.49: IBinder cannot be resolved to a variable ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMAgent.java:260.2: Syntax error on token "}", delete this token ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMAgent.java:261.15: This method requires a body instead of a semicolon ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMAgent.java:262.12: This method requires a body instead of a semicolon ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMAgent.java:263.15: This method requires a body instead of a semicolon ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMAgent.java:264.12: This method requires a body instead of a semicolon ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMPROINFOUtils.java:129.22: android.os.NvRAMAgent cannot be resolved ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMPROINFOUtils.java:144.8: android.os.KSTHandleCharsCheck cannot be resolved to a type ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMPROINFOUtils.java:149.4: android.os.NvRAMAgent cannot be resolved to a type ERROR: /home/server1/server1/fyc/mt6580_go/alps/frameworks/base/core/java/android/os/NvRAMPROINFOUtils.java:149.34: android.os.NvRAMAgent cannot be resolved
09-18
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值