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 \

 

......


有错误出来了,ok跟着做。

 ******************************

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 command:

         make update-api

 

      To submit the revised current.xml to the main Android repository,

      you will need approval.

******************************
make updata-api --更新系统api

>>>>>>finish

make -j8  --重新编译

ok编译顺利通过。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值