我是gradle构建系统和IntelliJ的新手.
那么如何创建一个Android库项目(例如com.myapp.lib1)和应用程序项目(例如com.myapp.app)并使构建系统在应用程序项目中包含com.myapp.lib1?
我进入了项目结构 - >模块 - >我的应用程序项目,并为lib项目添加了一个依赖项.IntelliJ现在可以在应用程序项目中使用时识别lib项目中的类,但是当我运行应用程序项目时,会出现以下错误:
Gradle: error: package com.myapp.lib1 does not exist
Run Code Online (Sandbox Code Playgroud)
Blu*_*ell 112
要创建库:
文件>新模块
选择Android库

要使用库,请将其添加为依赖项:
文件>项目结构>模块>依赖项

然后添加模块(android库)作为模块依赖项.

运行您的项目.它会工作.
Jin*_*Heo 109
我想知道为什么没有独立jar项目的例子.
在eclipse中,我们只需在项目设置对话框中选中"Is Library"框.
在Android studio中,我按照这个步骤获得了一个jar文件.
创建一个项目.
在左侧项目菜单中打开文件.(app/build.gradle):Gradle Scripts> build.gradle(Module:XXX)
换一行:apply plugin: 'com.android.application'- >'apply plugin: com.android.library'
删除文件中的applicationId: applicationId "com.mycompany.testproject"
构建项目:构建>重建项目
然后你可以得到aar文件:app> build> outputs> aar文件夹
将aar文件扩展名更改为zip
解压缩,你可以classes.jar在文件夹中看到.重命名并使用它!
无论如何,我不知道为什么google让jar创建在android studio中如此麻烦.
Aqi*_*taz 93
谷歌的Gradle插件推荐用于配置gradle文件以构建多个项目的方法有一些缺点如果你有多个项目取决于一个库项目,这篇文章简要介绍了谷歌推荐的配置,它的缺点,并推荐一种不同的方法来配置gradle文件到支持Android Studio中的多项目设置:
不同的方式:
事实证明,在Android Studio中管理多个项目是一种更好的方法.诀窍是为您的库创建单独的Android Studio项目,并告诉gradle您的应用所依赖的库的模块位于库的项目目录中.如果您想将此方法与我上面描述的项目结构一起使用,您将执行以下操作:
第四步是困难的部分,所以这是我将详细描述的唯一步骤.您可以通过在settings.gradle文件中添加项目语句并在项目语句返回的ProjectDescriptor对象上设置projectDir属性来引用项目目录外部的模块:
代码必须放入settings.gradle:
include ':library1'
project(':library1').projectDir = new File('../StickyListHeader/library1')
Run Code Online (Sandbox Code Playgroud)
如果您已正确完成此操作,您会注意到项目引用的模块将显示在项目导航器中,即使这些模块位于项目目录的外部:
这允许您同时处理库代码和应用程序代码.当您以这种方式从外部引用模块时,版本控制集成也可以正常工作.您可以提交并推送对库代码的修改,就像您可以提交并推送对应用程序代码的修改一样.
这种设置多个项目的方式避免了困扰Google推荐配置的困难.因为我们引用了一个位于项目目录之外的模块,所以我们不必为每个依赖它的应用程序创建库模块的额外副本,我们可以对我们的库进行版本化,而不需要任何类型的git子模块.
不幸的是,很难找到这种设置多个项目的方法.显然,它不是你在查看Google指南时会想到的,而且在这一点上,使用Android Studio的UI无法以这种方式配置你的项目.
Grk*_*eer 45
查看有关多项目设置的链接.
有些事情要指出,请确保更新settings.gradle以引用应用程序和库模块.
settings.gradle: include ':app', ':libraries:lib1', ':libraries:lib2'
还要确保应用程序的build.gradle具有以下内容:
dependencies {
compile project(':libraries:lib1')
}
Run Code Online (Sandbox Code Playgroud)
您应该具有以下结构:
MyProject/
| settings.gradle
+ app/
| build.gradle
+ libraries/
+ lib1/
| build.gradle
+ lib2/
| build.gradle
Run Code Online (Sandbox Code Playgroud)
应用程序的build.gradle应该使用该com.android.application插件,而任何库的build.gradle应该使用该com.android.library插件.
如果您能够使用此设置从命令行构建,则应更新Android Studio IDE.
Sim*_*oid 13
对于Intellij IDEA(和Android Studio),每个库都是一个模块.将Android Studio中的模块视为与Eclipse中的项目等效.Android Studio中的项目是模块的集合.模块可以是可运行的应用程序或库模块.
所以,为了添加一个新的android库项目,你需要创建一个类型为"Android库"的模块.然后将此库模块添加到主模块(应用程序模块)的依赖关系列表中.
han*_*noo 12
我创建和重用库项目的最简单方法:
file > new > new module(并回答UI问题)
include ':myLibrary'检查/或在文件build.gradle中添加if :
dependencies {
...
compile project(':myLibrary')
}
要在另一个项目中重用此库模块,请复制项目中的文件夹而不是步骤1,然后执行步骤2和3.
您还可以创建新的工作室应用程序项目 通过将build.gradle文件中的插件分配更改为com.android.library,可以轻松地将现有应用程序模块更改为库模块.
apply plugin: 'com.android.application'
android {...}
Run Code Online (Sandbox Code Playgroud)
至
apply plugin: 'com.android.library'
android {...}
Run Code Online (Sandbox Code Playgroud)
更多在这里
您可以向任何应用程序添加新模块,正如Blundell在他的回答中所说,然后从任何其他应用程序引用它.
如果要将模块移动到计算机上的任何位置,只需移动模块文件夹(模块完全独立),然后您必须引用该模块.
要参考此模块,您应该:
在您的应用的build.gradle文件中添加:
dependencies {
...
compile project(':myandroidlib')
}
Run Code Online (Sandbox Code Playgroud)在settings.gradle文件中添加以下内容:
include ':app', ':myandroidlib'
project(':myandroidlib').projectDir = new File(PATH_TO_YOUR_MODULE)
Run Code Online (Sandbox Code Playgroud)不要忘记使用apply plugin: 'com.android.library'你的build.gradle而不是申请插件:'com.android.application'
根据 Android Studio 文档中给出的建议,这是推荐的方式。
创建一个新项目来创建您的库。单击File > New > New Module > Android Library > Next > (choose name) > Finish。然后将您想要的任何类和资源添加到您的库中。
当您构建模块时,将创建一个 AAR 文件。您可以在 中找到它project-name/module-name/build/outputs/aar/。
您可以将库作为依赖项添加到另一个项目,如下所示:
在 settings.gradle 文件中,确保您的库名称存在。
include ':app', ':my-library-module'
Run Code Online (Sandbox Code Playgroud)在应用程序的 build.gradle 文件中,将编译行添加到依赖项部分:
dependencies {
compile project(":my-library-module")
}
Run Code Online (Sandbox Code Playgroud)就是这样。您现在应该可以使用您的库了。
如果您想让更多受众轻松使用您的库,请考虑使用 JitPac 或 JCenter。
| 归档时间: |
|
| 查看次数: |
161622 次 |
| 最近记录: |