【发布时间】:2015-08-08 15:16:08
【问题描述】:
我很难在 Android Studio 1.3、Gradle 2.5 和 gradle-experimental 插件 0.2.0 中使用外部库,因为 NDK 是必需的。
我找到了一些关于如何更改旧 gradle 文件的材料 here,但找不到任何其他文档文档。
在我广泛的搜索过程中,我设法找出了清单的变化,但没有发现 res 和 aid 的变化。有没有人设法找出需要更改的内容或任何有用的文档?
apply plugin: 'com.android.model.library'
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle-experimental:0.2.0'
}
}
model {
android {
compileSdkVersion = 19
buildToolsVersion = "19.1.0"
defaultConfig.with {
applicationId = "org.opencv.android"
minSdkVersion.apiLevel = 8
targetSdkVersion.apiLevel = 19
versionCode = 3000
versionName = "3.0.0"
}
}
android.sources {
main {
manifest.source.include 'AndroidManifest.xml' // OLD manifest.srcFile 'AndroidManifest.xml'
java.source.srcDir 'src'
resources.source.srcDirs 'src'
res.srcDirs = ['res'] // ERROR
aidl.srcDirs ['src'] // ERROR
}
}
}
错误是:
Gradle 同步失败:在 AndroidLanguageSourceSet 'main:aidl' 上找不到属性 'srcDirs'。
Gradle 同步失败:无法加载类 'com.android.build.gradle.model.AndroidLanguageSourceSet_Decorated'。
【问题讨论】:
-
我不知道它是否能解决你的问题,但也许可以试试
res.srcDirs += ['res']? -
错误信息现在和第一个一样。不管怎么说,还是要谢谢你。
Gradle sync failed: Could not find property 'srcDirs' on AndroidLanguageSourceSet 'main:res'. -
嗯.. 看起来它们现在都是同一类型(AndroidLanguageSourceSet)。所以相同的语法可能适用于所有人:
java.source.srcDirs += 'src/main/java'、res.source.srcDirs += 'src/main/res'、aidl.source.srcDirs += 'src/main/aidl'(在我的情况下有效)` -
有效!我记得一两天前尝试过完全相同的事情。一定犯了一些错误(错字或忘记了 += )。谢谢!您可以将其发布为答案。
标签: android android-ndk android-gradle-plugin