使用AS创建ADIL文件时AS会在main文件夹下给我们生成一个aidl文件夹和一个相同包名的包,通常我们会把所有和ADIL相关的类或文件放在这个包下,但是如果存在自定义的类时,程序编译时无法通过,提示找不到自定义的包。解决办法如下,在启动Module的build.gradle中加入如下代码:
1
2
3
4
5
6
7
8
9
10
|
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'
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
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编译时找不到自定义类的解决办法,希望对大家有所帮助!