如何将Action Bar Sherlock导入gradle项目?

时间:2013-05-31 10:07:15

标签: android gradle android-studio build.gradle

我已使用发布此问题的步骤将Module导入Android Studio: Problems importing project into Android Studio regarding ActionBarSherlock

IDE运行良好,但它不会影响构建。来自Android Studio: Are Library Project dependencies picked from project.properties?

  

如果使用Gradle,则完全忽略project.properties。您现在不应该使用“模块设置”来添加依赖项,因为它只会更改IDE而不会更改基于Gradle的构建系统(我们将在以后的版本中对此进行修复)。

我修改了build.gradle

的依赖关系
dependencies {
    compile files('libs/android-support-v4.jar')
    compile project(":ActionBarSherlock")
}

但它现在构建打印出不同的错误: Gradle:

FAILURE: Build failed with an exception.
* Where:
Build file '...PATH.../PROJECT_NAME/PROJECT_NAME/build.gradle' line: 13
* What went wrong:
A problem occurred evaluating project ':PROJECT_NAME'.
> Project with path ':ActionBarSherlock' could not be found in project ':PROJECT_NAME'.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

3 个答案:

答案 0 :(得分:23)

此答案已被删除:请查看AppCompat作为替代品!

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

the ActionBarSherlock siteActionBar Sherlock with Android Studio 0.2.2

上找到了 ABS已经释放了他们的aar。

也是在github上使用它的示例:

https://github.com/JakeWharton/ActionBarSherlock-Gradle-Sample

支持库版本号并不重要,请确保始终使用项目允许的最新版本。实际包含支持jar作为一个整体不是可选的

答案 1 :(得分:11)

只是一个通知:目前对导入包含资源(aar库文件)的外部库的适当支持似乎尚未得到正确支持。这就是ActionBarSherlock尚未将其项目作为aar文件发布的原因。但是,如果将外部库(ActionBarSherlock)的代码放在项目目录中,它应该可以工作。

现在,要让多个项目正常工作,请在项目的根目录中创建一个名为“settings.gradle”的文件,并在其中添加以下行:

include 'actionbarsherlock'
include 'yourproject'

现在确保将两个子目录放在与gradle.settings相同的文件夹中:actionbarsherlock和yourproject。在这些子目录中应该是构建文件(build.gradle)和项目的其余部分。结构应该是这样的:

Project
|-- settings.gradle
|-- actionbarsherlock
|   |-- build.gradle
|   |-- AndroidManifest.xml
|   |-- src
|   |   `-- *
|   |-- res
|   |   `-- *
|   `-- ...
`-- yourproject
    |-- build.gradle
    `-- src
        `-- main
            |-- AndroidManifest.xml
            |-- java
            |   `-- *
            `-- res
                `-- *

希望这是有道理的,尽管这通常是您构建自己的多个依赖项目的方式。你通常不希望外部库的代码(比如ActionBarSherlock)在你的项目库中,但就像我说的那样,正确地做它还没有准备好。

另外,只是一个通知,ActionBarSherlock的稳定版本还没有gradle构建文件。从git使用ActionBarSherlock的dev分支来获取正确的源文件:https://github.com/JakeWharton/ActionBarSherlock/tree/dev/actionbarsherlock

答案 2 :(得分:2)

我希望我们能够向人们展示其中一些库已被弃用。

现在应该使用AppCompat代替不推荐使用的ActionbarSherlock。