Android Studio中的Android库

有没有人想出/了解Android库如何打算在Android工作室工作?

我还没有find任何有关这方面的文档(Android开发人员网站上的文档是非常无聊的),我发现取决于我如何创build库项目,我得到了完全不同的结果。

如果我从Eclipse导入一个库(按照网站上的build议先导出到Gradle),最后我将得到一个包含库项目的新项目+模块。 这看起来不太正确(intellij project = eclipse workspace),并且试图在intellij中编译/ make这会导致很多错误(库项目找不到android支持库)。

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

如果我从项目中创build一个新的模块(使用右键单击项目),然后我得到一个使用Ant构build的Android库。 这编译好,但似乎很奇怪。 当然,我们不打算在Android Studio中使用Android的Ant库吗? 顺便说一下,使用“文件”>“新build模块”创build新的库模块似乎不起作用。 它只是创build一个新的应用程序。

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

更新2014-04-09:

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

我只是没有得到谷歌用Android Studio的想法…很可惜,因为它似乎是一个伟大的工具,但缺乏直观的处理如代码重用这样的基本是一个大问题对我来说(没关系与不断改进的跨平台开发工具相比,专门针对Android的编码越来越不具吸引力)。

如果你想在你的Android Studio项目中使用额外的库:

  1. 将.jar库复制到项目的libs文件夹中
  2. 右键单击库并select“添加为库”
  3. build.gradlereplace

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

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

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

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

所以一个模块就像Eclipse项目一样。

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

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

多项目设置是你在找什么,我想。 一开始我不会太在意Android Studio的东西。 专注于获取gradle文件,然后“同步”模块以更新Android Studio。 (我不得不重新启动它的“build立变种”部分更新与新口味。)

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

高级别的项目在那里,以便您稍后要添加新的模块(库项目)。 第一次用单个模块创build一个顶层项目比创build一个平面项目更容易,并且在添加模块后再进行转换。

在你的settings.gradle文件中,有两点需要指出:你应该列出:app和:library模块; 也是“android”插件用于应用程序,但“android-library”插件应该用于库模块。

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

在这一刻你需要configuration你的build.gradle文件,以便在Android Studio中使用jar或者在运行时结束可怕的NoClassDefException 。 看到我的答案在这里得到一些关于获取jar库工作的提示。 你也可以直接将Maven依赖关系定义到build.gradle ,这非常方便。

为了任何人打这个,这是我正在做的“解决”这个问题。 这是一个非常优秀的解决scheme,国际海事组织,但它是最接近我find了一个很好的解决scheme,在Android Studio中使用Git处理我的问题(重用Android库)。

基本的想法是使用Git子模块。 每个库都有它自己的Git仓库。

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

与Eclipse中使用Android库的简单优雅相差甚远,但是它依赖于时尚。 需要注意的是:

  • 记住要经常拉动拉,以获取更改(然后提交主项目以与子模块更改同步)。
  • 如果你已经提交了对库的更改,记得从模块目录推入到远程。

内置的VCS应该可以在这里帮助,但是对我来说这是非常不好的,所以我现在更喜欢从terminal上自己做。

希望这可以帮助。

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

(这是毕加索图书馆)

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

如果你想创build我们自己的库,然后按照这些步骤。

  1. 点击文件菜单
  2. select新模块,然后selectAndroid库。

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

现在终于你的图书馆已经创build,你可以轻松使用。

  1. 点击文件 ,然后点击项目结构
  2. 点击小窗口中的Dependencies Tab,然后点击Green color plusbutton。

  3. 并select模块依赖关系,你可以看到你的库文件。

  4. select库并确定