我有一个SDK,为此我开发了许多小型测试应用程序。这些都是具有以下共同点的独立android应用程序:
1)所有依赖项都是相同的(即,我的sdk / android sdk / etc的相同版本。)
2)它们都共享一个通用的顶级build.gradle文件(当前为空):
3)它们正在构建,测试等。各个阶段都是相同的。
我希望所有项目都作为模块存在于Android Studio中,并且希望它们在顶层build.gradle中共享尽可能多的配置,以便我可以更新一个文件并使所有文件正常工作。
当我在顶层build.gradle中添加以下内容时:
subprojects {
apply plugin: "android"
repositories {
mavenCentral()
maven {
url "my.repo.com"
credentials {
username "user"
password "pass"
}
}
dependencies {
compile 'com.my.library:my-library:0.0.1'
// compile 'com.google.android.gms:play-services:+'
}
}
}
我懂了
'could not find property 'plugin' on ':App1'
':App1'
settings.gradle中的第一个应用程序在哪里,构建失败。
我的目标是在此顶级文件中获取上面的块以及其他许多适用的元素。
编辑:我已经修复了语法错误(我错过了:),但是导致“找不到ID为'android'的插件。通常可以通过添加以下内容来解决:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.14.4'
}
}
allprojects {
repositories {
mavenCentral()
}
}
但这并不能解决这种情况。
编辑2:
最终形式:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.14.4'
}
}
allprojects {
repositories {
mavenCentral()
}
}
subprojects {
apply plugin: "android"
repositories {
mavenCentral()
maven {
url "my.repo.com"
credentials {
username "user"
password "pass"
}
}
dependencies {
compile 'com.my.library:my-library:0.0.1'
// compile 'com.google.android.gms:play-services:+'
}
}
android {
compileSdkVersion 19
buildToolsVersion '19.1.0'
lintOptions {
abortOnError false
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
}
defaultConfig {
minSdkVersion 16
targetSdkVersion 19
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
productFlavors {
}
}
}
这似乎工作正常。
这是一个简单的语法错误。该apply()
方法以Map
as作为参数。不要忘记冒号(:
)。
apply plugin: 'android'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句