主要错误信息 : 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













网友评论