Framework添加AIDL文件
?
Framework编译AIDL文件
?
今天下午下载一个开源的Android系统,编译中老遇到如下aidl错误,思考了很久,终于找到解决办法。AIDL是什么?不清楚的可以google。这里重点是如何在android framework中添加新的接口。如下例子,如果没有添加AILD文件,编译系统的时候会出现如下错误。
?
frameworks/base/core/java/android/bluetooth/BluetoothHid.java:86: cannot find symbol
symbol ?: class IBluetoothHid
location: class android.bluetooth.BluetoothHid
?? ?private final IBluetoothHid mService;
?? ? ? ? ? ? ? ? ?^
frameworks/base/core/java/android/server/BluetoothHidService.java:30: cannot find symbol
symbol ?: class IBluetoothHid
location: package android.bluetooth
import android.bluetooth.IBluetoothHid;
?? ? ? ? ? ? ? ? ? ? ? ? ^
frameworks/base/core/java/android/server/BluetoothHidService.java:47: package IBluetoothHid does not exist
public class BluetoothHidService extends IBluetoothHid.Stub {
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?^
frameworks/base/core/java/android/bluetooth/BluetoothHid.java:98: package IBluetoothHid does not exist
?? ? ? ? ? ?mService = IBluetoothHid.Stub.asInterface(b);
?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?^
frameworks/base/core/java/android/server/BluetoothHidService.java:142: cannot find symbol
symbol ?: variable super
location: class android.server.BluetoothHidService
?? ? ? ? ? ?super.finalize();
?? ? ? ? ? ?^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
5 errors
6 warnings
?
解决办法:
在framework中的 Android.mk文件中添加
......
?
?? ? ? ?core/java/android/app/backup/IBackupManager.aidl \
core/java/android/app/backup/IRestoreObserver.aidl \
core/java/android/app/backup/IRestoreSession.aidl \
core/java/android/bluetooth/IBluetooth.aidl \
core/java/android/bluetooth/IBluetoothA2dp.aidl \
core/java/android/bluetooth/IBluetoothCallback.aidl \
core/java/android/bluetooth/IBluetoothHeadset.aidl \
?? ? ? ?core/java/android/bluetooth/IBluetoothHid.aidl \
core/java/android/bluetooth/IBluetoothPbap.aidl \
core/java/android/content/IContentService.aidl \
core/java/android/content/IIntentReceiver.aidl \
core/java/android/content/IIntentSender.aidl \
core/java/android/content/ISyncAdapter.aidl \
?
......
?******************************
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 byexecuting the following command:
???????? make update-api
?
????? To submit the revisedcurrent.xml to the main Android repository,
????? you will need approval.
******************************make updata-api --更新系统api