Android Studio中的Android库

有没有人想到/发现Android库如何在Android工作室中运行?

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

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

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

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

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

更新2014-04-09:

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

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

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

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

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

 compile fileTree(dir: 'libs', include: '*.jar') 

如果它仍然不起作用,使用我们的终端导航到项目的根文件夹并运行gradlew clean命令。

Intellij与Eclipse不同,因为您的“工作区”仅适用于一个“项目”。 每个项目都由多个模块组成。 这些模块本身可以有自己的“项目/应用程序/库”。

所以模块有点像Eclipse项目。

转至:文件 – >项目结构 – >模块

并将Android库添加为模块,您可以声明它在Android库中并使其成为“项目”(应用程序模块)的依赖项。

我认为多项目设置是您正在寻找的。 我起初不会过多关注Android Studio的内容。 专注于正确获取gradle文件,然后“同步”模块以更新Android Studio。 (我不得不重新启动它,以便“Build Variants”部分更新新版本。)

@Xav在Google+回复中建议如下:

如果您想稍后添加新模块(库项目),那么高级项目就在那里。 首次使用单个模块创建顶级项目比创建平面项目更容易,并在添加模块后转换它。

需要指出的两件事,在settings.gradle文件中,您将列出:app和:library modules; ‘android’插件也用于app,但’android-library’插件应该用于库模块。

如果您能够从命令行进行./gradlew汇编,那么下次打开项目或同步时,Android Studio应使用正确的设置进行更新。

您需要将build.gradle文件配置为使用带有Android Studio的jar,或者在运行时最终使用可怕的NoClassDefException 。 有关获取jar库工作的一些提示,请参阅我的答案 。 您还可以直接将Maven依赖项定义到build.gradle ,这非常方便。

为了让任何人对此有所了解,这就是我正在做的“解决”这个问题。 它与优雅的解决方案IMO相距甚远,但它与我在Android Studio中使用Git处理我的问题(重用Android库)时发现的最佳解决方案最接近。

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

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

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

  • 记得经常git pull,获取更改(然后提交主项目以与子模块更改同步)。
  • 如果你已经提交了对库的更改,请记得从模块目录向远程推送。

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

希望这可以帮助。

将android库附加到android studio。 如果您对库有任何想法,那么直接添加例如。

(这是毕加索图书馆)

 compile 'com.squareup.picasso:picasso:2.3.2' 

如果要创建自己的库,请按照以下步骤操作。

  1. 单击“文件”菜单
  2. 选择新模块,然后选择Android库。

  3. 声明库名称和包名称。

现在终于创建了您可以轻松使用的库。

  1. 单击文件 ,然后单击项目结构
  2. 单击小窗口内的Dependencies选项卡,然后单击绿色加按钮。

  3. 并选择模块依赖关系,您可以看到您的库文件。

  4. 选择库并确定