標籤:xxxx 多個 uil 疑問 enabled style 一個 rdf 查看
出錯現象:
大概意思是找不到:com.android.application 外掛程式,以上現象對於初學者來說會經常碰到,下面分析下產生的原因。
原因分析
首先來看看匯入後的工程結構:
對於此工程結構,是否有個疑問? 這是未正常同步完成的結構,Gradle Scripts下面似乎少了個 build.gradle ,紅框部分描述清楚了是 Module: GraphicsDemo ,表示該 build.gradle 是Module的,而不是Project的。來看看一個正常的 Project+Module的工程是怎樣的:
請注意紅框位置,一個是Project, 一個是 Module 。這兩個 build.gradle 究竟啥區別呢? 眾所周知,Android Studio在組織工程結構的時候是以Project作為基礎,可以在它的基礎上建立多個Module,正如所示!不少開發人員在貢獻自己的代碼到Github或者CSDN下載頻道的時候,就直接把Module 整個檔案夾丟上去了,導致下載使用的人出現了上述錯誤現象。 究其原因,還是先瞭解下 兩種類型 gradle檔案的錯用吧!
build.gradle(Project: xxxx)
該檔案是整個工程編譯的通用檔案,優先順序最高
源碼如下:
// Top-level build file where you can add configuration options common to all sub-projects/modules.// 優先順序最高的build檔案,先於Module的build.gradle執行buildscript { repositories { jcenter() //指定maven鏡像,下同 } dependencies { classpath ‘com.android.tools.build:gradle:2.2.0‘ //指定classpath // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files }}allprojects { repositories { jcenter() }}task clean(type: Delete) { delete rootProject.buildDir //指定clean的時候清除掉指定目錄}
從上述的注釋可以看出該檔案的作用:
1. 編譯工程最頂級的檔案,優先順序最高;
2. 指定maven倉庫地址,gradle相關的包是從maven拉取下來的;
3. 指定 classpath,不然無法找到某些類,標題出現的問題就是這個原因。
build.gradle(Module: xxx)
該檔案是某個Module編譯時間候用到的檔案
源碼如下:
//注意:Gradle是通過外掛程式來區分是可執行檔工程還是libiary工程,下面表示可執行工程apply plugin: ‘com.android.application‘android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "mashen.graphicsdemo" minSdkVersion 17 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‘]) testCompile ‘junit:junit:4.12‘ compile ‘com.android.support:appcompat-v7:23.4.0‘}
這裡面的配置都是大家耳熟能詳的了,重點看看第一行,apply plugin: ‘com.android.application’ 表示當前Module是可執行工程。 然而找不到這個外掛程式,原因就是 com.android.application 來源於 com.android.tools.build:gradle:2.2.0 。 這下估計都明白了!
解決方案:
將build.gradle裡面的配置指令碼拷貝到Module下的 build.gradle裡面,也就是下面的指令碼:
buildscript { repositories { jcenter() } dependencies { classpath ‘com.android.tools.build:gradle:2.2.0‘ //注意:更換成自己的AS的版本 }}allprojects { repositories { jcenter() }}
查看gradle版本: Terminal —> gradle -v (前提是配置了環境變數)
本文轉自:http://blog.csdn.net/seafishyls/article/details/53572939
android studio - 匯入工程報錯[Plugin with id 'com.android.application' not found]