gpt4 book ai didi

android - 向 Android.mk 添加 aidl 文件

转载 作者:太空宇宙 更新时间:2023-11-03 13:30:42 25 4
gpt4 key购买 nike

我正在向我的项目添加一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com