標籤:
使用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編譯時間找不到自訂類的解決辦法