mbo*_*nin 53 android gradle android-studio android-gradle-plugin
我只是启用instant run
了我的android工作室项目.(按照这里的说明)
我的项目包含git
子模块,不知怎的,这些子模块不再编译.
这是我得到的错误:
错误:(8,0)在解析后,无法更改配置':libraries:my_library:classpath'的依赖关系.
知道那可能有什么问题吗?
顶级build.gradle:
buildscript {
repositories {
mavenCentral()
jcenter()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0-alpha1'
classpath 'com.novoda:bintray-release:0.2.7'
classpath 'io.fabric.tools:gradle:1.+'
}}
Run Code Online (Sandbox Code Playgroud)
模块build.gradle:
apply plugin: 'android'
apply plugin: 'io.fabric'
android {
defaultConfig {
versionCode 4850
versionName '4850'
compileSdkVersion 23
buildToolsVersion '23.0.1'
}
packagingOptions {
exclude 'META-INF/LICENSE'
exclude 'META-INF/MANIFEST.MF'
exclude 'META-INF/NOTICE'
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
useLibrary 'org.apache.http.legacy'
}
repositories {
mavenCentral()
jcenter()
}
dependencies {
[skip]
compile project(':libraries:my_library:sdk')
}
Run Code Online (Sandbox Code Playgroud)
库build.gradle
apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion '23.0.2'
defaultConfig {
minSdkVersion 14
targetSdkVersion 23
}
lintOptions {
abortOnError false
}
}
repositories {
mavenCentral()
}
dependencies {
compile fileTree(include: '*.jar', dir: 'libs')
compile 'com.android.support:support-v4:23.1.0'
compile 'com.android.support:appcompat-v7:23.1.0'
testCompile 'junit:junit:4.12'
}
Run Code Online (Sandbox Code Playgroud)
tha*_*sma 33
gradle
读取并执行build.gradle
所包含模块的所有文件夹中的所有文件.如错误所示,它还尝试执行的根构建脚本:libraries:my_library
.
您必须settings.gradle
通过设置'projectDir' 来更改并包含库项目:
include ':app'
// Give your library project any module name, i.e. ':sdk'
include ':sdk'
// Then set the project path of the library module
project(':sdk').projectDir = new File('libraries/my_library/sdk')
Run Code Online (Sandbox Code Playgroud)
有了这个,settings.gradle
您可以将库项目作为gradle依赖项引用:
compile project(':sdk')
Run Code Online (Sandbox Code Playgroud)
o.a*_*out 30
我有同样的问题.我通过删除classpath
子模块顶级build.gradle
文件来解决它.
dependencies {
// classpath 'com.android.tools.build:gradle:1.0.0'
}
Run Code Online (Sandbox Code Playgroud)
我不确定这是否是最好的事情,但它对我有用.
Ste*_*han 28
我有同样的问题.我将它与@RaGe 的(工作)示例项目进行了比较,发现了细微差别.
子项目文件夹必须以大写字母开头.
以下是我对@RaGes示例所做的更改,以打破它并让它再次运行.
结构破碎:
android-multi-project-sample
+ .gralde
+ .idea
+ app
+ build
+ gradle
+ myApplication2
- .gitignore
- android-multi-project-sample.iml
- build.gradle
- gradle.properties
- gradlew
- gradlew.bat
- local.properties
- settings.gradle
Run Code Online (Sandbox Code Playgroud)
导致以下错误:
Error:(8, 0) Cannot change dependencies of configuration ':myApplication2:classpath' after it has been resolved.
工作结构(带大写子项目)
android-multi-project-sample
+ .gralde
+ .idea
+ app
+ build
+ gradle
+ MyApplication2 // upper case!!!!!!
- .gitignore
- android-multi-project-sample.iml
- build.gradle
- gradle.properties
- gradlew
- gradlew.bat
- local.properties
- settings.gradle
Run Code Online (Sandbox Code Playgroud)
最高级别settings.gradle
也必须改变:
+ include ':app', ':MyApplication2:mylibrary'
- include ':app', ':myApplication2:mylibrary'
Run Code Online (Sandbox Code Playgroud)
并且app/build.gradle
必须改变这一点
+ compile project(':MyApplication2:mylibrary')
- compile project(':myApplication2:mylibrary')
Run Code Online (Sandbox Code Playgroud)
一切都在编译
小心!默认情况下,Git不区分大小写.使用
git mv -f myApplication2 temp
git mv -f temp MyApplication2
Run Code Online (Sandbox Code Playgroud)
重命名该文件夹.
归档时间: |
|
查看次数: |
25171 次 |
最近记录: |