2015-11-03 61 views
7

有什麼辦法或變通或者讓Android插件的提示,使得從gradle產出和gradle這個實驗性的工作在一起的插件?從混合的gradle和gradle這個實驗性

例如混合這兩種版本:

com.android.tools.build:gradle:1.3.1 
com.android.tools.build:gradle-experimental:0.3.0-alpha4 

我有現成的項目,該項目使用了一些外部插件(app/build.gradle):

apply plugin: 'com.android.model.application' 
apply plugin: 'com.android.databinding' 
apply plugin: 'com.jakewharton.hugo' 
在我的根 build.gradle

我:

com.android.tools.build:gradle-experimental:0.3.0-alpha4 

問題,我有:

* What went wrong: 
A problem occurred evaluating project ':app'. 
> Failed to apply plugin [id 'com.android.databinding'] 
    > java.lang.NullPointerException (no error message) 

* What went wrong: 
A problem occurred evaluating project ':app'. 
> Failed to apply plugin [id 'com.jakewharton.hugo'] 
    > 'android' or 'android-library' plugin required. 

沒有其他插件我的項目工作正常(我的Android庫與一些NDK代碼是從我的主要項目叫。當我在其他人上添加提到的插件時會發生問題。

,問題是 - 它是每個插件的gradle這個實驗性的問題或問題(雨果,數據綁定,貼切,可能更多)。

或者,也許你有任何暗示,如果有任何其他方式與當前的gradle穩定和插件庫(與NDK代碼),使用gradle這個實驗性的應用程序?

我想避免是交易帶* .mk文件和(儘可能充分)的Android Studio的支持。更大的圖片是準備.aar庫與NDK代碼(只是簡單的計算),將能夠插入到現有的項目。

+0

僅供參考,以使在搖籃數據綁定你需要做的這個:'{綁定啓用 =真 }' –

+0

@froger_mcs我知道這個問題有一個公認的答案,但你管理使用的gradle' (用於NDK支持)和'databinding'支持,或者這兩個功能必須位於單獨的模塊中? – pskink

回答

4

我已經能夠沒有任何問題,在我的項目中使用最新版本的Gradle混合穩定- 實驗的Android插件。

你應該能夠確定項目的的build.gradle文件中都依賴關係:

dependencies { 
    classpath 'com.android.tools.build:gradle-experimental:0.3.0-alpha7' 
    classpath 'com.android.tools.build:gradle:1.4.0-beta6' 
} 

,然後要麼使用apply com.android.(application|library)com.android.model.(application|library)從你的各種模塊的的build.gradle文件。

+0

謝謝,似乎解決方案只是嘗試每個測試版本,直到你找到工作。 :) 還值得一提的是,插件只能用於com.android。(應用程序庫)。所以最後要混合實驗和穩定的gradle插件,我們應該有不同的模塊(在我的例子中是重點)。 –

+0

我想混合0.6.0-alpha3和1.5.0,但AndroidStudio/gradle似乎並不喜歡它。我的項目由一個本地模塊(產生一個aar)組成,然後由一個主要應用程序使用的android庫使用。它不會在加載時引發任何項目相關的錯誤,但Android Studio(1.5.1)會瘋狂(自動禁用插件,無法保存文件,不加載android facet,...)。如果您有任何建議,我很感興趣!使用最新版本,'0.6.0-alpha5' – rockeye

+0

,IDE無法解析模塊,即使使用'編制項目( 「:JNI項目」)'。你有最新版本的Gradle有這些問題嗎? –

0

沒有用實驗插件,但我猜,你可以將你的項目分成2個搖籃模塊,並使用標準的Android搖籃插件的NDK模塊中的應用模塊和新的實驗插件。

0

@ ph0b是對的,我只是給出了更新的答案。

你需要在你的gradle-wrapper.properties distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-all.zip

和你的項目構建。gradle這個

dependencies { 
    classpath 'com.android.tools.build:gradle:2.1.3' 
    classpath "com.android.tools.build:gradle-experimental:0.7.3" 
}