你的位置:首页 > 操作系统

[操作系统]使用Android studio创建的AIDL编译时找不到自定义类的解决办法


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

sourceSets {    main {      manifest.srcFile 'src/main/AndroidManifest.      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.      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中自定义类就能找到了。