如何将库项目(如Sherlock ABS)添加到Android Studio?
(不是旧的基于Eclipse的ADT包,而是新的Android Studio。)
Android Studio 1.0更新
自Android Studio 1.0发布以来(v1.0与我之前回答时的第一个版本之间有很多版本),一些事情发生了变化。
我的描述侧重于通过Gradle文件手动添加外部库项目(以便更好地理解该过程)。如果你想通过Android Studio创建者添加一个库,只需使用可视指南检查下面的the answer(Android Studio 1.0和截图中的一些差异,但过程非常相似)。
在开始手动向项目添加库之前,请考虑添加外部依赖项。它不会搞乱您的项目结构。几乎每个着名的Android库都可以在Maven存储库中找到,它的安装只需要在app/build.gradle
文件中使用一行代码:
dependencies {
compile 'com.jakewharton:butterknife:6.0.0'
}
添加库
以下是将外部Android库添加到项目的完整过程:
HelloWorld/ app/ - build.gradle // local Gradle configuration (for app only) ... - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ...
HelloWorld/
)中,创建新文件夹:/libs
,我们将在其中放置外部库(此步骤不是必需的 - 仅用于保持更清晰的项目结构)。/libs
文件夹中。在这个例子中,我使用了PagerSlidingTabStrip library(只需从GitHub下载ZIP,将库目录重命名为“PagerSlidingTabStrip”并复制它)。这是我们项目的新结构:HelloWorld/ app/ - build.gradle // Local Gradle configuration (for app only) ... libs/ PagerSlidingTabStrip/ - build.gradle // Local Gradle configuration (for library only) - build.gradle // Global Gradle configuration (for whole project) - settings.gradle - gradle.properties ...
include
来编辑settings.gradle。如果您像我一样使用自定义路径,则还必须为我们的库定义项目目录。整个settings.gradle应如下所示:
include ':app', ':PagerSlidingTabStrip'
project(':PagerSlidingTabStrip').projectDir = new File('libs/PagerSlidingTabStrip')
5.1如果您遇到“默认配置”错误,请尝试此操作而不是步骤5,
include ':app'
include ':libs:PagerSlidingTabStrip'
6.1。如果你按照步骤5.1,那么按照这个而不是6,
app/build.gradle
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile project(":PagerSlidingTabStrip")
}
文件,则必须手动创建它。以下是该文件的示例:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.3'
compile project(":libs:PagerSlidingTabStrip")
}
build.gradle
文件并添加行:
apply plugin: 'com.android.library'
dependencies {
compile 'com.android.support:support-v4:21.0.3'
}
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 14
targetSdkVersion 21
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
res.srcDirs = ['res']
}
}
}
现在您可以在gradle.properties
文件(在应用程序和库模块中)中使用它,如下所示:
ANDROID_BUILD_MIN_SDK_VERSION=14
ANDROID_BUILD_TARGET_SDK_VERSION=21
ANDROID_BUILD_TOOLS_VERSION=21.1.3
ANDROID_BUILD_SDK_VERSION=21
build.gradle
是关于使用Gradle Build System构建Android应用程序的精彩演示:正如Xavier Ducrohet所说:
Android Studio完全是关于编辑,调试和分析。这不再是建筑了。
一开始它可能有点令人困惑(特别是那些与//...
android {
compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
defaultConfig {
minSdkVersion Integer.parseInt(project.ANDROID_BUILD_MIN_SDK_VERSION)
targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
}
}
//...
合作并且从未见过蚂蚁的人 - 就像我一样;)),但最后Gradle给了我们一些很好的机会,值得学习这个构建系统。
如果需要访问库项目的资源(与ABS一样),请确保将库项目/模块添加为“模块依赖项”而不是“库”。
导入ABS模块(从文件>项目结构)并确保它具有Android 2.2和支持库v4作为依赖项后,我仍然得到@Alex的以下错误
No resource found that matches the given name 'Theme.Sherlock.Light'
我将新导入的模块添加为我的主应用程序模块的依赖项,并修复了问题。
第一种方式这适用于MacBook。
首先选择您的builder.gradle文件作为给定的屏幕:
dependencies {
compile project(':libraries:lib1')
}
在所选屏幕上添加依赖项,如:
Error retrieving parent for item: No resource found that matches the given name 'Theme.Sherlock.Light.DarkActionBar'
选择同步项目。
如果您收到类似“带路径的项目”的错误:在项目':app'中找不到签名板',那么请使用第二种方式:
选择菜单文件 - >新建 - >导入模块...:
点击导入模块后,
像我的MacBook路径一样给出库的路径:
单击“完成”。现在您的库已添加。
只需将库名添加到应用程序的build.gradle文件的依赖项块中。
sourceSets {
main {
res.srcDirs = ['src/main/res','../../ActionBarSherlock/actionbarsherlock/res']
}
}
请注意,您现在应该使用YourApp/libraries
而不是dependencies {
// ...
implementation 'com.example:some-library:1.0.0'
}
。这是Android Studio 3.0的新功能。有关差异的解释,请参阅implementation
。
这是视觉指南:
Android Studio 0.8.2更新:
在Android Studio 0.8.2中,转到项目结构 - >在模块下,点击加号按钮,然后选择导入现有项目并导入Google I/O 2013 - The New Android SDK Build System 。然后同步Gradle文件。
如果您遇到错误
错误:SDK Build Tools修订版(xx.x.x)太低。最低要求是yy.y.y
只需在Eclipse目录中打开actionbarsherlock
文件,然后将build.gradle
更新为建议的文件。
actionbarsherlock
菜单文件 - >项目结构......:
模块 - >导入模块
导入库模块后,选择项目模块并添加依赖项:
然后选择导入的模块:
我找到了解决方案。这很简单。关注compile
。
确保在项目结构 - >模块(源)中将src文件夹设置为Source文件夹。
基本上,您可以通过三种不同的方式包含JAR文件。最后一个是使用this Q&A jcenter在线存储库的远程库。但是,如果您使用其他两种方法之一,JAR文件将物理地包含在您的项目中。请阅读此链接froger_mcs instructions以获取更多信息。在这篇文章中,我解释了如何在Android studio中导入JAR文件,并解释了所有可能的方法。
总之,如果它是这样的(本地地址),它们将被下载并且这些JAR文件实际上在项目中:
但是,如果它是这样的互联网地址,它们是远程库(bintray.com jcenter部分),它们将被远程使用:
https://stackoverflow.com/a/35369267/5475941
我希望它有所帮助。
只需将Android库项目作为模块导入并在Build.gradle中导入。
申请插件:'com.android.library'
之后,请按照下列步骤操作:
repositories {
maven { url 'http://clinker.47deg.com/nexus/content/groups/public' }
}
是如何在最新版本的Android Studio 1.0.1中添加JAR文件和库项目的Dropbox链接。
请参阅带截图的文档。这对新用户来说非常容易。
在Android Studio中,转到内部app文件夹,然后打开build.gradle文件。在这里,您将看到依赖项{}。在其中,您可以添加库项目并进行同步。现在,在同步库之后,它将被添加到您的项目中,您可以在项目中使用它的函数和类。
对于Android Studio:
compile ('com.fortysevendeg.swipelistview:swipelistview:1.0-SNAPSHOT@aar') {
transitive = true
}
单击Build.gradle(module:app)。
并添加
https://www.dropbox.com/s/1e3eteu3h0pmkf7/Android%20studio%20_doc.doc?dl=0
并在您的目录“app”中,创建一个目录“libs”。添加文件yourfile.jar:
最后,编译Gradle文件:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile files('libs/commons-io-2.4.jar')
}
我也遇到了同样的问题然后我做了以下事情。
应用更改并单击“确定”按钮。
它对我有用。我希望它也能帮助别人。
事实上,随着版本的变化,改变菜单上的用户界面和选项也是如此。在阅读了这些问题的大多数答案后,我不得不猜测什么对Android Studio 1.1.0有用。
清理并重建您的项目。
使用菜单文件 - >项目结构 - >模块。
我今天开始使用它。它有点不同。
对于Sherlock,也许您想要删除他们的测试目录,或者将buildToolsVersion
文件添加到类路径中。
要使用gradle导入库,您必须将其添加到android {
compileSdkVersion 19
buildToolsVersion 'yy.y.y'
的junit.jar
部分(模块的部分)。
EG
dependencies
Android Studio正在发生变化。
如果右键单击Android Studio项目部分中的模块文件夹(我使用的是版本0.2.10),则存在名为“打开模块设置”的部分。
我会考虑build.gradle
必要的阅读。请花几分钟时间。
特别是,对于非jar库项目,请从上面的源代码中阅读以下代码段:
Gradle项目还可以通过使用多项目设置来依赖其他gradle项目。多项目设置通常通过将所有项目作为给定根项目的子文件夹来工作。
例如,给出以下结构:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:22.1.0'
compile 'com.actionbarsherlock:actionbarsherlock:4.4.0@aar'
}
我们可以确定3个项目。 Gradle将使用以下名称引用它们:
Dependencies, Android Libraries and Multi-project setup
每个项目都有自己的build.gradle来声明它是如何构建的。此外,根目录中会有一个名为settings.gradle的文件,用于声明项目。这给出了以下结构:
MyProject/
+ app/
+ libraries/
+ lib1/
+ lib2/
settings.gradle的内容非常简单:
:app
:libraries:lib1
:libraries:lib2
这定义了哪个文件夹实际上是Gradle项目。
:app项目可能依赖于库,这是通过声明以下依赖项来完成的:
MyProject/
| settings.gradle
+ app/
| build.gradle
+ libraries/
+ lib1/
| build.gradle
+ lib2/
| build.gradle
请注意,很少或根本没有使用Android Studio GUI来实现这一目标。
我目前正在使用include ':app', ':libraries:lib1', ':libraries:lib2'
将嵌套库链接到实际的库git repo以避免依赖混乱。
我刚刚找到了一种更简单的方法(而不是直接写入.gradle文件)。
这适用于Android Studio 1.1.0。
我发现包含外部库项目的最简单方法是(例如,包含一个存储在依赖项文件夹中的一个目录的Facebook库):
dependencies {
compile project(':libraries:lib1')
}
剩下要做的就是将项目与gradle文件同步。
将JAR文件作为库添加到Android Studio项目的简单方法:
a)复制* .jar文件
b)粘贴到项目下的libs目录中:
c)添加到build.gradle:
include ':facebook'
project(':facebook').projectDir = new File(settingsDir, '../dependencies/FacebookSDK')
b)如果来自示例com.example.MYProject和库com.example.ScanAPI的项目具有相同的命名空间com.example,Android Studio将检查您的构建并在项目中创建所有必要的更改。之后,您可以在菜单文件 - >项目结构中查看这些设置。
c)如果您的项目和库具有不同的命名空间,则必须右键单击库并选择“添加为库”选项并选择所需的类型。
请记住,“项目结构”选项未在当前版本的Android Studio(0.2.3)中的“build.gradle”中进行任何自动更改。也许这个功能将在下一个版本中提供。
然后,相关的build.gradle文件将自动更新。
打开build.gradle文件,并将新的构建规则添加到依赖项闭包中。例如,如果您要添加Google Play服务,则项目的依赖项部分将如下所示:
compile project ('facebook')
在“项目”面板中,按住Control并单击要添加依赖项的模块,然后选择“打开模块设置”。
选择Dependencies选项卡,然后选择左下角的+按钮。您可以从以下选项列表中进行选择:
然后,您可以输入有关要添加到项目中的依赖项的更多信息。例如,如果选择Library Dependency,则Android Studio会显示一个库列表供您选择。
添加依赖项后,请检查模块级build.gradle文件。它应该已自动更新以包含新的依赖项。
dependencies {
...
compile files('libs/ScanAPIAndroid.jar', 'libs/ScanAPIFactoryAndroid.jar', .., ..)
}
在要添加外部库项目的项目中,转到菜单文件 - >新建 - > *导入新模块**,导航到要添加到项目中的库项目,选择添加'库'模块你的项目。您将在项目中获得settings.gradle,包括app,包含库,如下所示:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services:6.5.+'
}
在依赖项部分中添加build.gradle(Module:app):
编译项目(':library')
重建项目,就是这样。
*您可以根据需要添加任意数量的库(模块)。在settings.gradle的情况下,您将拥有:
Source
在build.gradle中,您需要:
include ':app', ':library'