2016-04-11 44 views
1

我想从github导入一个名为android-netspoof的项目,我是NDK平台工具的新手,我不知道它。我已经下载了NDK并提取了zip,并在环境变量中添加了路径。我想导入该项目的学习,但我得到这个错误Error:(12, 0) Error: NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin. For details, see http://tools.android.com/tech-docs/new-build-system/gradle-experimental. Set "android.useDeprecatedNdk=true" in gradle.properties to continue using the current NDK integration. <a href="openFile:C:\Users\Shreyash-2107\Desktop\android-netspoof-1.9.01111111\app\build.gradle">Open File</a>请帮我导入这个项目。Android - NDK集成被弃用的错误

回答

5

答案出现在错误消息中(TL; DR:为您的gradle.properties添加“android.useDeprecatedNdk = true”),但如果您不熟悉历史记录,则可能不明显。

曾几何时,Android工具团队发布了一个带有NDK支持的Gradle插件版本。但是Gradle并不擅长编译C++,所以支持并不是他们希望的。

然后Gradle决定添加非常好的C++支持。只有一个问题:C++与Java真的不同,而Gradle团队意识到他们的以Java为中心的对象模型不会完成任务。所以他们发明了一个new object model(顺便说一下,这似乎是一个更好的设计)。不幸的是,新的对象模型需要一段时间才能孵化,并且仍然(截至2016年4月)尚未正式发布。

这让Android Studio处于一个尴尬的境地。尝试将C++支持强加于旧的Gradle模型似乎并没有多大意义,但同时它在稳定之前无法转向新模型。临时解决方案是现在继续稳定的路径,但也提供了一个与Gradle的新实验模型配合使用的插件。

考虑到这一点,您可以评估错误消息给您的两个选项。一种方法是继续使用旧的NDK支持,将“android.useDeprecatedNDK = true”添加到您的gradle.properties文件中。另一种是使用experimental plugin,这要求您对当前项目进行重大更改。

听起来好像你正试图编译一个你没有编写的现有项目,而且现有的项目有一个使用旧的NDK支持的构建脚本。所以你可能会想要使用“useDeprecatedNDK”选项。如果您从头开始编写项目,您可能会对实验性插件感到高兴。

+3

项目没有任何gradle.properties我怎样才能让一个新的也nside gradle.properties在哪里写“android.useDeprecatedNDK = true”inde文件 – GeekWithGlasses

2

为了让Android Studio中建立应用程序添加一个文件名gradle.properties到平台\包含以下行的android文件夹,:

android.useDeprecatedNdk=true 
+0

我已经阅读了许多相似的答案。你是第一个明确指出要做什么的人。投票! – user2783091