在Android Studio中将现有项目转换为库项目


67

如何在Android Studio中将现有的Android项目转换为Android库项目?在Eclipse中,这是可能的。

实际上,我想将一个旧的Android项目转换为一个Android库项目,以便可以使用该Android项目的现有代码来构建一个新的Android项目,并在Android Studio中进行少量更改。

Answers:


96

在模块的build.gradle文件中(如果使用模块,则不是根项目!),只需替换:

apply plugin: 'com.android.application'
// or, if you're on an old version
apply plugin: 'android' // note: this one is deprecated

...具有:

apply plugin: 'com.android.library'
// or, if you're on an old version
apply plugin: 'android-library' // note: this one is deprecated

请注意,最近,“ android”已更改为“ com.android.application”,而“ android-library”已更改为“ com.android.library”。避免在新项目中使用旧名称。

更新build.gradle文件后,您应该将Project与Gradle文件同步(位于工具栏中),因为不这样做可能会导致错误和无法正常工作。

然后,Android Studio将更新一些文件,以指示该模块现在是一个库;因为这将被添加到您的.iml文件中:

<option name="LIBRARY_PROJECT" value="true" />

您可能已经知道,您将无法运行您的(现在)库项目-您需要将其包含在应用程序项目中

如果您使用的是Android Studio 1.0,并且收到“库项目无法设置applicationId”,请确保您applicationId的Gradle构建文件中没有。


将其作为单独的答案发布,因为编辑实际答案以添加一些细节可能会对其造成太大更改(并且可能会被拒绝,因为它过于庞大)!
Lao Lam 2014年

3
此后又出现一个错误,显示为“库项目无法设置applicationId”。为了解决这个问题,请从defaultconfig部分中仅删除一行,即提及applicationid参考
SHS 2014年

@SHS:我不确定你是什么意思?
Lao Lam 2014年

收件人:LéoLam在堆栈溢出的注释部分中,按Enter键可发布未完成的注释。因此,您看到了我未完成的评论。由于参考错误,仅当项目属于App时,applicationid标记才可用。在Lib项目中,我们需要删除标签。对造成的不便表示歉意。
SHS 2014年

@SHS谢谢!我已经在答案中添加了信息。请注意,有了50个代表,您现在可以建议对帖子进行编辑。
Lao Lam 2014年

5

查看此文档 http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Multi-project-setup

我想您要做的就是将其添加到build.gradle文件中,

创建一个图书馆项目

apply plugin: 'android-library'

从链接

创建一个图书馆项目

Library项目与常规Android项目非常相似,但有一些区别。

由于构建库与构建应用程序不同,因此使用了不同的插件。在内部,这两个插件共享大多数相同的代码,并且都由同一个com.android.tools.build.gradle jar提供。

buildscript {
    repositories {
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:0.5.6'
    }
}

apply plugin: 'android-library'

android {
    compileSdkVersion 15
}

0

在文件资源管理器中打开项目,打开project.properties并尝试在project.properties中更改android.library = true


0

这是一个较晚的响应,但是我一直在尝试做同样的事情。以上似乎都没有为我完成这项工作,但是我发现我认为可行:

右键单击项目名称->将目录标记为(在底部)->源根

我不知道“资源根”和“源根”之间的区别,还有一些谷歌搜索以求出答案,但是希望是对的。我只是知道图书馆不应该建立一个apk,并且在设置了此选项之后就无法了,所以我假设它可以工作。

如果还有其他人比我了解更多,请这么说!


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.