Android Studio中的Android库

Mic*_* A. 21 android intellij-idea android-studio

有谁想过/发现Android库如何在Android工作室中运行?

我还没有找到任何关于这方面的文档(Android开发者网站上的文档非常简陋),我观察到,根据我创建库项目的方式,我会得到完全不同的结果.

如果我从Eclipse导入一个库(按照网站上的建议首先导出到Gradle)我最终会得到一个包含库项目的新项目+模块.这似乎不太正确(intellij project = eclipse工作空间),并且尝试在intellij中编译/生成这会导致许多错误(库项目无法找到android支持库).

如果我从头开始用库模块创建一个新项目,那么我得到一个带有build.gradle文件的android库项目.

如果我在项目中创建一个新模块(使用右键单击项目),那么我将获得一个使用Ant构建的Android库.编译很好,但似乎很奇怪.当然我们不打算在Android Studio中使用Ant for Android库吗?使用"文件">"新建模块"创建新的库模块似乎无法正常工作.它只是创建一个新的应用程序.

有没有人拿起任何信息来理解这个?我还没有找到任何可以指定哪些库应该在哪些应用程序模块中使用的位置.我知道这是一个预览版本,但我很难相信像Android库这样的核心功能支持得很差.我错过了什么?

更新2014-04-09:

所以我本周在Android Studio上进行了新一轮.虽然现在的问题与我最初写这篇文章的时候有所不同,但这非常令人难以置信 - 仍然是一个大问题.我还没有找到在AS中的多个项目中使用Android库的很好的解释(包括嵌套的库).我见过的一些建议建议将代码复制到多个位置 - 这完全违背了开始使用库的目的.

我只是不知道谷歌在Android Studio中的想法...很遗憾,因为它看起来像是一个很棒的工具,但缺乏直观的处理,如代码重用这样基本的东西对我来说是一个大问题(没关系)与不断改进的跨平台开发工具相比,专门针对Android的编码变得越来越没有吸引力.

小智 12

如果您想在Android Studio项目中使用其他库:

  1. 将.jar库复制到项目中的libs文件夹中
  2. 右键单击库并选择"Add as library"
  3. build.gradle替换

    编译文件('libs/android-support-v4.jar')

compile fileTree(dir: 'libs', include: '*.jar')
Run Code Online (Sandbox Code Playgroud)

如果仍然无效,请使用我们的终端导航到项目的根文件夹并运行gradlew clean命令.


Mic*_* A. 0

为了让任何人都能解决这个问题,这就是我正在做的事情来“解决”这个问题。在我看来,它距离一个优雅的解决方案还很远,但它是我在 Android Studio 中使用 Git 处理问题(重用 Android 库)时找到的最接近好的解决方案。

基本思想是使用 Git 子模块。每个库都有自己的 Git 存储库。

  1. 创建 myLibrary 作为模块,然后将其提交到存储库。
  2. 从项目根存储库中,我执行了一个操作git submodule add来获取库。
  3. 在 settings.gradle 中,我添加:include ':myLibrary'并同步项目。
  4. 模块设置 >> 依赖项 >> + 模块依赖项并根据需要向模块添加依赖项。

这与在 Eclipse 中使用 Android 库的简单优雅相去甚远,但它的工作方式很时尚。要记住的事情:

  • 请记住经常 git pull 来获取更改(然后提交主项目以与子模块更改同步)。
  • 如果您已提交对库的更改,请记住从模块目录 git push 到远程。

内置的 VCS 应该能够在这里提供帮助,但它对我来说非常不稳定,所以我现在更喜欢自己从终端进行操作。

希望这可以帮助。