6

我正在尝试将 ActionBarSherlock 添加到我现有的应用程序中。这并不像我想象的那么容易。我已经这样做了两天了。我已经为 2 页的 Google 结果尝试了每个教程。这是我遵循本教程后的内容。

我的项目结构

在此处输入图像描述

ActionBarSherlock/actionbarsherlock/build.gradle

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:0.5.+'
  }
}
apply plugin: 'android-library'

repositories {
  mavenCentral()
}

dependencies {
  compile 'com.android.support:support-v4:13.0.+'
  compile files('libs/Parse-1.3.1.jar')
}
android {
  sourceSets {
    main {
      manifest.srcFile 'src/main/AndroidManifest.xml'
    }
  }
}
android {
  compileSdkVersion 17
  buildToolsVersion "17.0.0"

  defaultConfig {
    minSdkVersion 7
    targetSdkVersion 16
  }
}

ClashMMAProject/ClashMMA/build.gradle

  buildscript {
repositories {
    maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
    classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'

repositories {
mavenCentral()
 }

dependencies {
compile 'com.android.support:support-v4:13.0.+'
compile files('libs/Parse-1.3.1.jar')
compile project(':libraries:ActionBarSherlock:actionbarsherlock')
 }
android {
sourceSets {
    main {
        manifest.srcFile 'src/main/AndroidManifest.xml'
    }
}
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"

defaultConfig {
    minSdkVersion 7
    targetSdkVersion 16
}
}

设置.gradle

include ':ClashMMA', ':libraries:ActionBarSherlock:actionbarsherlock'

依赖项

在此处输入图像描述

我的错误

在此处输入图像描述

我做了很多研究,但我什么也做不了。我每次都会出错,所以有些东西我理解不正确。请帮忙。谢谢你的时间。


更新

好的建议后,这就是我在 ClashMMAProject/ClashMMA/build.gradle

buildscript {
repositories {
    mavenCentral()
}
dependencies {
    classpath 'com.android.tools.build:gradle:0.6.+'
}
}
apply plugin: 'android'

repositories {
mavenCentral()
}

dependencies {
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
compile 'com.android.support:support-v4:18.0.+'
compile files('libs/Parse-1.3.1.jar')
}
android {
sourceSets {
    main {
        manifest.srcFile 'src/main/AndroidManifest.xml'
    }
}
}
android {
compileSdkVersion 17
buildToolsVersion "18.0.1"

defaultConfig {
    minSdkVersion 7
    targetSdkVersion 16
}
}

这会产生错误:

Gradle: Execution failed for task ':ClashMMA:processDebugManifest'.
        > Manifest merging failed. See console for more info.
4

2 回答 2

9

我也为此苦苦挣扎,因为似乎我遵循的每个教程或答案都遗漏了一些小细节,而初学者不知道这些是可以自动完成的。以下是我最终将 ABS 添加到我的项目中的方式:

1.根本不要下载ABS。您可以通过修改现有的 build.gradle 文件来完全添加它。不是您项目的 build.gradle,而是您的内部文件夹,即 src 目录的父文件夹。

2.打开 SDK Manager 并确保您拥有Android SDK Build-tools18.0.1(以后的版本可能也可以使用)。

3. 模仿我的 build.gradle 文件。这是我正在使用的确切的 build.gradle 文件。确保您的 minSdk 和 targetSdk 与清单中的内容匹配:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.6.+'
    }
}
apply plugin: 'android'

repositories {
    mavenCentral()
}

dependencies {
    compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
    compile 'com.android.support:support-v4:18.0.+'
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.0.1"

    defaultConfig {
        minSdkVersion 8
        targetSdkVersion 18
    }
}

4.确保您使用的是 gradle 1.8 gradle-wrapper.properties

distributionUrl=http\://services.gradle.org/distributions/gradle-1.8-bin.zip

5.通过按下按钮将项目与 gradle 文件同步:

在此处输入图像描述

于 2013-10-29T20:31:18.130 回答
3

ActionBarSherlock 作者提供了一个 .aar 文件,因此您将不再需要构建库文件夹中的库。您可以将 build.gradle 更改为:

buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath 'com.android.tools.build:gradle:0.5.+'
  }
}
apply plugin: 'android-library'

repositories {
  mavenCentral()
}

dependencies {
  compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
  compile 'com.android.support:support-v4:13.0.+'
  compile files('libs/Parse-1.3.1.jar')
}
android {
  sourceSets {
    main {
      manifest.srcFile 'src/main/AndroidManifest.xml'
    }
  }
}
android {
  compileSdkVersion 17
  buildToolsVersion "17.0.0"

  defaultConfig {
    minSdkVersion 7
    targetSdkVersion 16
  }
}

注意依赖项中的 actionbarsherlock aar 文件,以及库依赖项的删除。(我还看到您的 gradle 为 0.5.+ 并且您的 buildToolsVersion 为“17.0.0”,最新版本为 0.6.+ 和“18.1.1”,但是一旦 ABS 为您工作,您就可以处理这些)。

现在您可以安全地删除您不再需要的库/ActionBarSherlock,并将您的 settings.gradle 文件更改为:

include ':ClashMMA'

希望这可以帮助。

于 2013-10-29T20:52:38.863 回答