美文网首页
mk错误:LOCAL_AIDL_INCLUDES could

mk错误:LOCAL_AIDL_INCLUDES could

作者: duoduo7628 | 来源:发表于2020-04-07 18:00 被阅读0次

主要错误信息couldn't find import for class com.noahedu.poem.service.IPoemData

错误日志:

HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=PPR1.180610.011
OUT_DIR=/opt2/data/p712/p712/out
============================================
ninja: no work to do.
ninja: no work to do.
No need to regenerate ninja file
No need to regenerate ninja file
[  5% 1/19] Aidl: PenWrite <= p712/apps/PenWrite/PenWriteP712/noah_copybook/src/com/noahedu/poem/service/IPoemService.aidl
FAILED: /opt2/data/p712/p712/out/target/common/obj/APPS/PenWrite_intermediates/aidl/noah_copybook/src/com/noahedu/poem/service/IPoemService.java 
/bin/bash -c "/opt2/data/p712/p712/out/host/linux-x86/bin/aidl -d/opt2/data/p712/p712/out/target/common/obj/APPS/PenWrite_intermediates/aidl/noah_copybook/src/com/noahedu/poem/service/IPoemService.P -b  -Ip712/apps/PenWrite/PenWriteP712 -Ip712/apps/PenWrite/PenWriteP712/src -Iframeworks/base/core/java -Iframeworks/base/graphics/java -Iframeworks/base/location/java -Iframeworks/base/media/java -Iframeworks/base/media/mca/effect/java -Iframeworks/base/media/mca/filterfw/java -Iframeworks/base/media/mca/filterpacks/java -Iframeworks/base/drm/java -Iframeworks/base/opengl/java -Iframeworks/base/sax/java -Iframeworks/base/telecomm/java -Iframeworks/base/telephony/java -Iframeworks/base/wifi/java -Iframeworks/base/lowpan/java -Iframeworks/base/keystore/java -Iframeworks/base/rs/java p712/apps/PenWrite/PenWriteP712/noah_copybook/src/com/noahedu/poem/service/IPoemService.aidl /opt2/data/p712/p712/out/target/common/obj/APPS/PenWrite_intermediates/aidl/noah_copybook/src/com/noahedu/poem/service/IPoemService.java"
p712/apps/PenWrite/PenWriteP712/noah_copybook/src/com/noahedu/poem/service/IPoemService.aidl:2: couldn't find import for class com.noahedu.poem.service.IPoemData
[ 10% 2/19] Copying: /opt2/data/p712/p712/out/target/common/obj/APPS/AirWindow_intermediates/classes.dex
[ 15% 3/19] target R.java/Manifest.java: PenWrite (/opt2/data/p712/p712/out/target/common/obj/APPS/PenWrite_intermediates/src/R.stamp)
nothing matches overlay file ic_launcher.png, for flavor xhdpi-v4
nothing matches overlay file ic_launcher.png, for flavor nodpi-v4
nothing matches overlay file button_study_note_normal.png, for flavor xhdpi-v4
nothing matches overlay file button_study_note_pressed.png, for flavor xhdpi-v4
nothing matches overlay file ic_launcher.png, for flavor xxhdpi-v4
nothing matches overlay file activity_main.xml, for flavor port
nothing matches overlay file activity_main.xml, for flavor land
ninja: build stopped: subcommand failed.
15:01:53 ninja failed with: exit status 1

#### failed to build some targets (01:11 (mm:ss)) ####

PenWrite 编译情况,请到:\192.168.7.66\开发升级程序2\P712\升级包\buildAppResult\  查看编译结果。。。

项目中发现文件是存在的,怎么办?看以下步骤

mk正确的aidl写法:
1.用LOCAL_SRC_FILES声明aidl文件(注意:有对应.java文件的aidl文件不需要声明,这里声明的是需要在build目录生成.java文件的aidl文件)
2.用LOCAL_AIDL_INCLUDES声明aidl文件所在目录(不包括包名!)

如下:

LOCAL_SRC_FILES := $(call all-java-files-under, noah_copybook/src) \
                   $(call all-java-files-under, noah_notepad/src) \
                   $(call all-java-files-under, base_pro_common/src/main/java) \
                   noah_copybook/src/com/noahedu/poem/service/IPoemData.java \
                   noah_penPicker/src/com/noahedu/penpicker/aidl/PenPickerAIDL.aidl \
                   noah_screenShotNote/src/com/noahedu/ssnote/aidl/SSNoteAidl.aidl \
                   noah_copybook/src/com/noahedu/poem/service/IPoemService.aidl


######## 解决AIDL编译的问题  aidl_dirs不需要包含aidl所在的包名(com.noahedu.poem.service) #############
aidl_dirs = noah_copybook/src
LOCAL_AIDL_INCLUDES  += $(LOCAL_PATH)/$(aidl_dirs)

注意:
LOCAL_AIDL_INCLUDES不包含aidl所在的包名(com.noahedu.poem.service)
aidl文件中导入的aidl文件不需要声明
aidl文件中导入的aidl文件对应的java文件需要声明

package com.noahedu.poem.service;
import com.noahedu.poem.service.IPoemData;

interface IPoemService {

IPoemData getPoemDataByTitle(in String Title);


}

这里IPoemService.aidl文件导入了import com.noahedu.poem.service.IPoemData;
IPoemData.aidl不用申明,
IPoemData.java需要申明。
参考网址:
https://stackoverflow.com/questions/45043696/android-aidl-refusing-to-generate-code-from-aidl-file-defining-parcelable
https://www.geek-share.com/detail/2700829752.html

相关文章

网友评论

      本文标题:mk错误:LOCAL_AIDL_INCLUDES could

      本文链接:https://www.haomeiwen.com/subject/cvkauhtx.html