(如版本2.1+):
下面是我走上共享项目目录之外的库源的步骤。我的代码不是简单的Java库,而是编译为Android模块,但该库模块不包含在主项目中。只要没有代码重复,我只需要为所有项目维护一组库代码就可以了。
1)File-> new Project。给你的图书馆项目命名(这里我使用LibraryProject
)。继续剩下的步骤来创建一个正常的项目(因为这是一个库,我选择了“添加没有活动”)
2)默认情况下,Android studio在项目文件夹内创建名为“app”的模块。为了防止名称与实际应用程序模块发生冲突,请将模块重命名为其他名称(右键单击左侧面板中的“应用程序”模块 - >重构 - >重命名)。
3)在build.gradle
你的库模块文件夹里面,顶线
apply plugin: 'com.android.application'
改变
apply plugin: 'com.android.library'
,然后删除在 “defaultConfig” 了 “的applicationID” 行。另外,由于这是一个库,所以从Manifest.xml中删除xlmns:...
名称空间和<application ..>
正文。 这就是图书馆的一部分。现在,创建/修改您的主应用程序:
4)如果是新项目,请先创建新项目File-> new Project-> ApplicationName。
5)打开settings.gradle
(应该只有在每一个项目一个这样的文件),并包括以下行(注意库模块中丢失的前导分号):
include ':app', '..:LibraryProject:yourLibraryModule'
6)然后去文件 - >项目结构。
7)在“Dependencies”标签下点击右侧绿色的“+”按钮。选择“模块依赖”。选择你的图书馆模块,然后点击确定。
您现在应该可以在应用程序中使用库类。
其它方法 如果由于某种原因,仍存在上述方法的问题,你可以尝试以下内容(here建议):
1)重复步骤1到4以上。默认情况下,主要和外部(库)项目是这个样子:
/MainProject
+ build.gradle
+ settings.gradle
+ app/
+ build.gradle
+ src/
/LibraryProject
+ build.gradle
+ settings.gradle
+ app/
+ build.gradle
+ src/
2)像往常一样,重构模块名称(在Android Studio中右键单击模块 - > refactor->重命名)的东西少混乱如
/MainProject
+ build.gradle
+ settings.gradle
+ MainModule/
+ build.gradle
+ src/
/LibraryProject
+ build.gradle
+ settings.gradle
+ LibraryModule/
+ build.gradle
+ src/
3)修改settings.gradle
在MainProject
:
include ':LibraryModule', ':app'
project(':LibraryModule').projectDir = new File(settingsDir, '../LibraryProject/LibraryModule')
同步的项目,你就大功告成了。在Proguard的
说明目前你不应该使用外部库项目/模块的ProGuard。相反,你替换(在图书馆的build.gradle
)以下(原来的答案here)
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
debug {
minifyEnabled false
}
}
下列要求:
buildTypes {
release {
consumerProguardFiles 'proguard-project.txt'
}
}
其中proguard-project.txt
是包含您的库项目ProGuard的规则文件。
您能否提供一个档案,包含您的主要图书馆和项目的骨架?或者你可以解释如何使库项目目录结构?当我创建一个图书馆项目时,AS创建了更深的结构。我试图像创建目录一样创建目录,但AS报告了有关分解目录中错误“错误路径名”的错误。我在过去的2个小时里尝试了很多变体,但没有成功。 :( –
@ScottBarta。我在Android Studio 0.6.1上,即使按照Scott Barta和Neoh的小心指示,我仍然无法工作。我坚持使用“Error:Configuration with name'default '找不到',即使在根据Neoh的规范重新排列MyLibrary的文件结构(并在MyLibrary的build.gradle中将“MyLibary”指定为“apply plugin:'android-library'”),最后我认为这个问题最好由Android Studio开发人员(Scott Barta,你似乎是这样的开发人员)继续他们的好工作,以便它变成一个简单的事情。 –
请参阅我的答案编辑 – Neoh