欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

使用Android studio创建的AIDL编译时找不到自定义类的解决办法

程序员文章站 2024-02-22 14:20:46
使用as创建adil文件时as会在main文件夹下给我们生成一个aidl文件夹和一个相同包名的包,通常我们会把所有和adil相关的类或文件放在这个包下,但是如果存在自定义的...

使用as创建adil文件时as会在main文件夹下给我们生成一个aidl文件夹和一个相同包名的包,通常我们会把所有和adil相关的类或文件放在这个包下,但是如果存在自定义的类时,程序编译时无法通过,提示找不到自定义的包。解决办法如下,在启动module的build.gradle中加入如下代码:

sourcesets {
main {
manifest.srcfile 'src/main/androidmanifest.xml'
java.srcdirs = ['src/main/java', 'src/main/aidl']
resources.srcdirs = ['src/main/java', 'src/main/aidl']
aidl.srcdirs = ['src/main/aidl']
res.srcdirs = ['src/main/res']
assets.srcdirs = ['src/main/assets']
}
} 

加入之后完整的build.gradle文件内容如下:

apply plugin: 'com.android.application'

android {
compilesdkversion 23
buildtoolsversion "23.0.2"
defaultconfig {
applicationid "aidl.aidl.demo"
minsdkversion 14
targetsdkversion 23
versioncode 1
versionname "1.0"
}
sourcesets {
main {
manifest.srcfile 'src/main/androidmanifest.xml'
java.srcdirs = ['src/main/java', 'src/main/aidl']
resources.srcdirs = ['src/main/java', 'src/main/aidl']
aidl.srcdirs = ['src/main/aidl']
res.srcdirs = ['src/main/res']
assets.srcdirs = ['src/main/assets']
}
}
buildtypes {
release {
minifyenabled false
proguardfiles getdefaultproguardfile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile filetree(dir: 'libs', include: ['*.jar'])
testcompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.1'
}

  sourcesets中主要是把把src/main/aidl文件也作为java.srcdirs, resources.srcdirs,这样当编译程序时,aidl中自定义类就能找到了。

以上内容给大家介绍了使用android studio创建的aidl编译时找不到自定义类的解决办法,希望对大家有所帮助!