使用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编译时找不到自定义类的解决办法,希望对大家有所帮助!
您可能感兴趣的文章:Android使用AIDL方式实现播放音乐案例Android AIDL实现两个APP间的跨进程通信实例Android使用AIDL实现两个App间通信Android应用程序四大组件之使用AIDL如何实现跨进程调用ServiceAndroid 使用【AIDL】调用外部服务的解决方法基于Android AIDL进程间通信接口使用介绍Android程序设计之AIDL实例详解实例讲解Android中的AIDL内部进程通信接口使用Android Studio创建AIDL文件并实现进程间通讯实例Android多进程间采用AIDL方式进行通信