gpt4 book ai didi

android - 添加库后无法使用gradle编译Android项目

转载 作者:太空宇宙 更新时间:2023-11-03 12:08:02 24 4
gpt4 key购买 nike

在将库添加到我的 Android 项目之前,布局是这样的:

  • 我的应用项目
    • 我的应用程序
      • build.gradle
  • settings.gradle
  • build.gradle

顶层 build.gradle 一直是空的,settings.gradle 文件只包含:

include ':Myapp'

我获得了一个可以成功导入到 Android Studio 中的库项目,因此我认为其中的 gradle 文件没有问题。我现在有以下结构:

  • 我的应用项目
    • 我的应用程序
      • build.gradle
    • 图书馆
      • 图书馆
        • 图书馆子项目 1
          • build.gradle
        • ....
        • build.gradle
  • settings.gradle
  • build.gradle

...顶级设置 gradle 现在看起来像:

include ':Myapp'
include ':libraries:Library'

我还更新了 Myapp 的 build.gradle,因此它在此处的依赖项中包含额外的最后一行:

dependencies {
compile 'com.android.support:support-v4:+'
compile files('libs/commons-lang3-3.1.jar')
compile files('libs/jsoup-1.7.3.jar')
compile project(':libraries:Library')
}

不幸的是,任何使用 gradle 做任何事情的尝试(同步文件、构建等)现在都会让我得到以下信息:

Gradle 'MyappProject' project refresh failed:
Configuration with name 'default' not found.
Gradle settings

对设置的任何更改似乎都没有效果,Android Studio 将设置设置为“使用默认 gradle 包装器”。据我了解,这意味着顶级 build.gradle 沿着此文件的行存在问题,其中不包含构建子项目的足够信息。但是,也许我误解了,因为 Myapp 过去常常构建,而 Library 似乎也很好。删除编译项目 (':libraries:Library') 允许 gradle 文件再次同步,但我想使用那个库...

欢迎就如何解决此问题提出任何建议。

编辑以从库中添加 build.gradle。顶层:

buildscript {
repositories {
mavenCentral()
}

dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}

allprojects {
version = VERSION_NAME
group = GROUP

repositories {
mavenCentral()
}
}

从下一层开始:

apply plugin: 'android-library'

android {
compileSdkVersion 19
buildToolsVersion "19.0.3"

defaultConfig {
minSdkVersion 14
targetSdkVersion 19
}

sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}

instrumentTest.setRoot('tests')

debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}

apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'

最佳答案

在 Android Studio 的项目中不能有项目。您只能拥有模块,因此请更改您的项目结构,如下所示,以便它符合允许的项目 - 模块级结构。

MyappProject
Myapp
build.gradle
libraries
LibrarySubProject1
build.gradle
....
settings.gradle
build.gradle(Root only one)

现在对您的 build.gradle 文件执行以下操作

<强>1。根级build.gradle 文件

buildscript {
repositories {
mavenCentral()
}

dependencies {
classpath 'com.android.tools.build:gradle:0.9.+'
}
}

repositories {
mavenCentral()
}

如果您的库项目的根级 build.gradle 文件中有某些内容,请将其也包含在此根级 build.gradle 文件中,因为只允许 root 拥有这些内容,它将自动包含在每个子级别的 build.gradle 文件中编译时。

<强>2。 LibraryProject的build.gradle文件

apply plugin: 'android-library'

android {
compileSdkVersion 19
buildToolsVersion "19.0.3"

defaultConfig {
minSdkVersion 14
targetSdkVersion 19
}

sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}

instrumentTest.setRoot('tests')

debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}

apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'

<强>3。您的主模块的 build.gradle 文件应该如下所示

apply plugin: 'android'

android {
compileSdkVersion 19
buildToolsVersion "19.0.3"

defaultConfig {
minSdkVersion 14
targetSdkVersion 19
}
}

dependencies {
//YOUR MODULE DEPENDENCIES
compile project(':libraries:LibrarySubProject1')
}

你的settings.gradle 文件会像

  include ':Myapp'
include ':libraries:LibrarySubProject1'

关于android - 添加库后无法使用gradle编译Android项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22323374/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com