android - 向 Android.mk 添加 aidl 文件

标签 android aidl

我正在向我的项目添加一个 aidl 文件,以应对我在调用 intent.getIntExtra (..) 时遇到的“ClassNotFound”异常,(因为在相同的 intent extras 中有另一个可打包对象)

我添加了以下 .aidl 文件 (SomeInfo.aidl)

package com.someapp;
parcelable SomeInfo;

我在Android.mk中添加了:

LOCAL_AIDL_INCLUDES := src/com/someapp/SomeInfo.aidl

但是当我构建项目时,我看不出有什么不同。 实际上,如果我添加到我的代码中

import com.someapp.SomInfo;

编译器找不到它...

请帮忙

最佳答案

您还需要将其添加到 LOCAL_SRC_FILES,例如:

LOCAL_SRC_FILES := $(call all-java-files-under, src) src/com/someapp/SomeInfo.aidl
LOCAL_AIDL_INCLUDES := src/com/someapp/SomeInfo.aidl

或者您可以使用预定义函数,例如:

LOCAL_SRC_FILES := $(call all-java-files-under, src) $(call all-Iaidl-files-under, src)
LOCAL_AIDL_INCLUDES := $(call all-Iaidl-files-under, src)

让我添加更多细节。实际上 base_rules.mk 是处理 aidl 文件的定义规则:http://androidxref.com/4.4.3_r1.1/xref/build/core/base_rules.mk#178 .它会像这样自动获取所有带有 aidl 扩展名的文件:

aidl_sources := $(filter %.aidl,$(LOCAL_SRC_FILES))

您要将 aidl 文件添加到的 LOCAL_AIDL_INCLUDES 列表实际上被定义为 AIDL 编译器的 -I* 参数:

$(aidl_java_sources): PRIVATE_AIDL_FLAGS := -b $(addprefix -p,$(aidl_preprocess_import)) -I$(LOCAL_PATH) -I$(LOCAL_PATH)/src $(addprefix -I,$(LOCAL_AIDL_INCLUDES))

关于android - 向 Android.mk 添加 aidl 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13720433/

相关文章:

android - 如何保持滚动条的速度?

java - app内paypal支付,如何清除之前用户的paypal数据?

android - 返回按钮和 ActionbarUpButton 关闭应用程序而不是返回

Android Couchdb - libcouch 和 IPC Aidl 服务

android - 将 Android 权限拆分为多个应用程序/插件的最佳方式

android - 检索 AIDL 使用者的 Java 包名称

Android 绑定(bind)服务与 AsyncTask

安卓双卡信号强度

Android In app Billing 套餐名称冲突

android - 如何从网站加载文件 .txt 到 android textview?