【问题标题】:How to import Action Bar Sherlock to gradle project?如何将 Action Bar Sherlock 导入到 gradle 项目?
【发布时间】:2013-05-27 03:04:53
【问题描述】:

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

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

如果你使用 Gradle,project.properties 将被完全忽略。您现在不应该使用 Module Settings 添加依赖项,因为它只会更改 IDE 而不会更改基于 Gradle 的构建系统(我们将在以后的版本中修复此问题)。

我修改了build.gradle的依赖

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

但它现在构建打印不同的错误: 摇篮:

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.

【问题讨论】:

    标签: android gradle android-studio build.gradle


    【解决方案1】:

    此答案已弃用:请查看 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 的实际包含不是可选的

    【讨论】:

    • 我认为需要 settings.gradle?
    • 现在ActionBarSherlock 网站上也推荐使用此方法。
    • 不知道为什么,但我收到错误:找不到 com.actionbarsherlock:actionbarsherlock:4.4.0。我参考了 maven 存储库:repositories { mavenCentral() }
    • 版本 4.4.0 可能已更改。他们的网站上没有更新用法。您看到的错误是什么?
    • @petrsyn,您可以使用以下命令下载 ABS aar 并将其安装到您的 Maven 存储库:mvn install:install-file -Dfile=actionbarsherlock-4.4.0.aar -DgroupId=com.actionbarsherlock -DartifactId=actionbarsherlock -Dversion=4.4.0 -Dpackaging=aar
    【解决方案2】:

    请注意:目前似乎还没有正确支持导入包含资源(aar 库文件)的外部库。这就是 ActionBarSherlock 尚未将其项目作为 aar 文件发布的原因。但是,如果您将外部库(ActionBarSherlock)的代码放在项目目录中,它应该可以工作。

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

    include 'actionbarsherlock'
    include 'yourproject'
    

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

    项目 |-- 设置.gradle |-- actionbarsherlock | |-- 构建.gradle | |-- AndroidManifest.xml | |-- 源 | | `-- * | |-- 资源 | | `-- * | `-- ... `-- 你的项目 |-- 构建.gradle `--src `--主要 |-- AndroidManifest.xml |-- 爪哇 | `-- * `--资源 `-- *

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

    另外,请注意,ActionBarSherlock 的稳定版本还没有 gradle 构建文件。从 git 使用 ActionBarSherlock 的 dev 分支获取正确的源文件:https://github.com/JakeWharton/ActionBarSherlock/tree/dev/actionbarsherlock

    【讨论】:

    • 谢谢 :) 这很有帮助,我自己为 ActionBarShelock 库制作了 build.gradle,在我查看 github 之前,我已经了解了一些关于 gradle 构建系统的东西 :)
    • 谢谢。在我的设置中,我必须编辑settings.gradle,并在其中添加include ':ActionBarSherlock:actionbarsherlock'。我只是在评论中提到这一点,因为这不是您输入的确切。但这确实帮助了我! :)
    • 对,':ActionBarSherlock:actionbarsherlock' 因为库项目位于您的子目录中。这意味着您具有以下结构(Bleh,评论格式很烂): /gradle.settings /yourproject/ /ActionBarSherlock/actionbarsherlock/build.gradle
    【解决方案3】:

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

    现在应该使用 AppCompat 代替已弃用的 ActionbarSherlock。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多