2015-11-03 59 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" 
}