2015-05-28 178 views
38
Environment: 
Mac OS 10.10.3 
Android studio:1.2.11 
grandle:2.2.1 

日誌:AIDL缺少機器人工作室

Information:Gradle tasks [:generateDebugSources, :generateDebugTestSources] 
:preBuild 
:preDebugBuild 
:checkDebugManifest 
:prepareDebugDependencies 
:compileDebugAidl FAILED 
Error:Execution failed for task ':compileDebugAidl'. 
> aidl is missing 

 

// Top-level build file where you can add configuration options common to all sub-projects/modules. 
import org.gradle.internal.os.OperatingSystem 
buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.0.0' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 
String SDK_DIR = System.getenv("ANDROID_HOME") 
if(SDK_DIR == null) { 
    Properties props = new Properties() 
    props.load(new FileInputStream(project.rootProject.file("local.properties"))) 
    SDK_DIR = props.get('sdk.dir'); 
} 


apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 21 
    buildToolsVersion "21.1.1" 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src'] 
      resources.srcDirs = ['src'] 
      aidl.srcDirs = ['src'] 
      renderscript.srcDirs = ['src'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
      jniLibs.srcDirs = ['libs'] 
     } 

     // Move the tests to tests/java, tests/res, etc... 
     instrumentTest.setRoot('tests') 

     // Move the build types to build-types/<type> 
     // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ... 
     // This moves them out of them default location under src/<type>/... which would 
     // conflict with src/ being used by the main source set. 
     // Adding new build types or product flavors should be accompanied 
     // by a similar customization. 
     debug.setRoot('build-types/debug') 
     release.setRoot('build-types/release') 
    } 
    defaultConfig { 
     minSdkVersion 14 
     targetSdkVersion 21 
    } 

    buildTypes { 
     release { 
      proguardFiles 'proguard.cfg' 
     } 
    } 

    lintOptions { 
     checkReleaseBuilds false 
     // Or, if you prefer, you can continue to check for errors in release builds, 
     // but continue the build even when errors are found: 
     abortOnError false 
    } 
} 

dependencies { 
    compile fileTree(include: '*.jar', dir: 'libs') 

    provided files("${SDK_DIR}/platforms/android-17/data/layoutlib.jar") 
    //compile files('libs/pass-v1.1.3.jar') 
    // compile files('libs/sdk-v1.0.0.jar') 
} 

在此之前,我已經編譯了Android資源4.4在我的Mac,以及OS系統修改了一些文件,我認爲這是原因,但我忘了哪個文件,有人遇到過這個問題呢

+0

[Execution failed for task':app:compileDebugAidl':aidl is missing]可能重複(http://stackoverflow.com/questions/29766830/execution-failed-for-task-appcompiledebugaidl-aidl-is-missing ) – mixel

回答

20

I solve my issue, set the build tools version from 21.1.2 to 22.0.1, hope it can help who meet the same.

我解決我的問題,將構建工具版本21.1.2從到22.0.1,希望它可以幫助誰滿足相同的。

66

在我的cas e我使用Android Studio 1.2.1.1下載了Android M版本22和Android 5.1.1,但是當我嘗試做一個Hello World時,同樣的錯誤告訴我

因此,解決方案是去做像應用程序中的右鍵點擊下面和圖像選擇「打開模塊設置」 .....

enter image description here

那麼你有兩個選擇。我用最後一個版本改變了它們。

編譯SDK版本API 21棒棒堂

enter image description here

和構建工具版本21.1.2到

enter image description here

最後清理項目和建設

UPDATE 這裏是我的build.gradle與您的build.gradle進行比較。

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 21 
    buildToolsVersion '21.1.2' 

    defaultConfig { 
     applicationId "com.android.bmi" 
     minSdkVersion 15 
     targetSdkVersion 22 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.2.0' 
} 

修訂

來獲得的Android 1.3工作室遵循通過選擇文件時,此步驟

  1. 打開設置窗口>設置。
  2. 選擇外觀&行爲>系統設置>更新面板。
  3. 在「更新」面板上,選擇自動檢查更新的選項:Canary Chanel。
  4. 在「更新」面板上,選擇「立即檢查」以檢查最新的金絲雀版本。 5.提示時下載並安裝該版本。

然後你就會有這樣的事情更新Android工作室到1.3,並用這個你可以測試版本的Android M

enter image description here

+1

謝謝豪爾赫。在Windows 8.1上解決了我的問題 –

+1

這解決了我在OSX上的問題10 – TrialAndError

+0

您應該將問題標記爲「正確」。 – EduardoFernandes

8

隨着距離Jorge的帖子截屏所有你需要做的是確保你不要選擇構建工具版本23.0.0 rc1。我還沒有在IDE或Google的錯誤跟蹤器中完全調查過這個版本,但是我只需要選擇以前的工具版本,並且在執行完整版本之後就可以正常工作。我用各種SDK分鐘版本嘗試了這一點。

我運行OSX 10.10.3與Android工作室1.2.1.1在Oracle JDK 1.8.0_45-b14的

用解決 這個問題在本質上Execution failed for task ':app:compileDebugAidl': aidl is missing相同的已更新運行。請閱讀我的帖子,瞭解解決方案的合適解決方案和參考資料。

+0

因此,我搜索了Google Android bug跟蹤器,並且有人提出了一個我評論過的未解決的問題。 Android項目成員評論說,如果您想使用Build Tools版本23.0.0 rc1,IDE會通知您獲取Gradle Plugin 1.3.0-beta1。請參閱:https://code.google.com/p/android/issues/detail?id=175080 –

2

人誰正在建設與Android 1.3的工作室預覽應用程序可能會調試AIDL失蹤錯誤 解決方案:(按順序遵循) 1)下載所有的工具預覽通道下(即修訂沒有23.0.0 RC1) 2)下載播放服務和Android支持回購支持 3)重新啓動Android Studio 4)按F4並將編譯SDK版本設置爲API 22+和Build tool版本23.0.0 rc1 5)打開build.gradle(Project:** ****)並改變類路徑與類路徑'com.android.tools.build:gradle:1.3.+'

+0

已完成但仍無法編譯23.0.0 rc1 – Akshay

+0

更新工具 –

2

我遵循Jorge的帖子截圖。但沒有API 21作爲選項。所以我保持編譯的SDK版本'API 22:Android 5.1(Lollipop)'原樣並且將生成工具版本從23.0.0 rc1更改爲22.0.1

我還必須安裝JDK 7,因爲22.0.1沒有支持JDK 6.之後,gradle構建成功。

enter image description here enter image description here

1

以我的經驗,沒有關於編譯SDK版本構建工具版本,是關於新項目結構。據此issue,Aidl文件應該是在src/main/aidl,一旦你把* .aidl放在假定的目錄下,Android Studio就會按照期望的那樣服務它。

而且如果你想擁有它們的src/main/java中,那麼你需要重新映射指令爲你指定,如下圖所示:

sourceSets { 
    main { 
     aidl.srcDirs = ['src/main/java'] 
    } 
} 

順便說一句,在我的情況,重新映射方法只能通過Gradle 2.4(也可能高於版本)工作。

15

對於那些你仍然得到「AIDL缺少」錯誤:

對我來說,設置回構建工具的版本是不是所有的解決方案。

在您頂級的build.gradle文件,嘗試設置: classpath 'com.android.tools.build:gradle:1.3.0' classpath 'com.google.gms:google-services:1.3.1'

,然後使用buildToolsVersion '23.0.1'

它對我來說非常合適。我希望它能幫助別人。

+0

此解決方案對我有很大幫助。 – validcat