GVKun编程网logo

android studio library 模块中正确引用aar的实例讲解(androidstudio引入aar包)

15

在这篇文章中,我们将为您详细介绍androidstudiolibrary模块中正确引用aar的实例讲解的内容,并且讨论关于androidstudio引入aar包的相关问题。此外,我们还会涉及一些关于1

在这篇文章中,我们将为您详细介绍android studio library 模块中正确引用aar的实例讲解的内容,并且讨论关于androidstudio引入aar包的相关问题。此外,我们还会涉及一些关于1.3、Android Studio 创建一个 Android Library、1.3、Android Studio创建一个Android Library、Android library 依赖 aar、Android Library和Android APP、Java Library的区别的知识,以帮助您更全面地了解这个主题。

本文目录一览:

android studio library 模块中正确引用aar的实例讲解(androidstudio引入aar包)

android studio library 模块中正确引用aar的实例讲解(androidstudio引入aar包)

今天对接一个海康监控的sdk,其中sdk 是以aar的形式提供的,并且我需要用到此aar的模块是个library。所以按照正常的在application模块中引入aar的方式一致报错,首先提示要关闭offline ,然后关闭了还是会提示错误。想了很久不明白。最终通过公司前辈的指导,正确的引入了aar。

1.除了和正常的aar的引入方式外,我们还需要在application所在模块的build.gradle文件中加入如下一段:

repositories {
  flatDir {
    dirs 'libs','../模块名/libs'
  }
}

在application的build中也要加入文件的指向,可加入各个模块,其中用逗号隔开,模块名就是你的modlename。

然后在你自己模块中还要正确引入:

repositories {
  flatDir {
    dirs 'libs'
  }
}
dependencies {
  compile filetree(include: ['*.jar'],dir: 'libs')
  compile(name: 'aar名字',ext: 'aar')
}

到此aar的引入就完成了。

―――――――――――― 更新于 2018-01-03 ――――――――――――

最好使用远程依赖的方式,这种方式可以有效解决,多层级依赖,导致相同的库文件重复的问题。

远程依赖的规则是不传递依赖,这样本模块依赖的再引用的模块是不可见的:

模块A,B,C

如果B依赖C并且是远程依赖,那么A依赖B的时候,C对于A是不可见的。

如果我们需要A中使用C,那么可以在A中依赖C。

另一种解决方式:

那么我们在library中依赖aar的时候就可以考略将此aar上传到maven仓库或者其他的远程地址,这样在依赖的时候就不会出现编译不通过或者运行不了的问题。

您可能感兴趣的文章:

  • Android项目中引用本地aar文件的方法
  • Android studio中生成引用.aar和.jar的方法详解
  • android studio生成aar包并在其他工程引用aar包的方法
  • AndroidStudio 如何使用aar详解
  • Android Studio中生成aar文件及本地方式使用aar文件的方法
  • 创建Android库的方法及Android .aar文件用法小结

1.3、Android Studio 创建一个 Android Library

1.3、Android Studio 创建一个 Android Library

一个 Android Library 结构上与 Android app 模块相同。它可以包含构建一个 app 需要的所有东西,包括圆满,资源文件和 AndroidManifest.xml。然而,并非编译成运行在设备上的 APK,一个 Android Library 编译成其他 Android app 模块可以用作以来的 AAR 文件。 
一个 Library 模块在以下情形中是有用的: 
1、 当你构建多个使用相同组件,比如 activity、service 或者 UI 布局,的 APP。 
2、 当你构建的 APP 存在多个 APK 文件。比如免费版和付费版 APK。 
在这些案例中,简单的移动你想复用的文件到 Library 模块中,添加 Library 作为 APP 模块的依赖。

创建一个 Library 模块

为了创建一个新的 Library 模块到你的项目中,遵循如下步骤: 
1、 单击 File > New > New Module 
2、 在 Create New Module 窗口出现时,点击 Android Library。然后点击 Next。 
这里同样有一个创建 Java Library 的可选项,可以构建一个传统的 JAR 文件。JAR 文件在很多项目中都是可用的。特别是你想与其他平台分享代码,它不允许包含 Android 资源文件或者 AndroidMainfest.xml,,这个在 Android 项目中是非常有用的,所以我们专注创建 Android Library。 
3、 为你的 Library 设置一个名称并且选择一个最小的 SDK,然后点击 Finish。 
一旦 Gradle 项目同步完成。Library 模块显示在 Project 左边的面板中。如果你没有看到新的模块文件夹,确保适应的是 Android 视图。

将 App 模块转化为 Library 模块

如果你有一个已经存在的 app 模块所有的代码你都想复用,你可以通过以下几部将其转化成 Library 模块。 
1、 打开 build.gradle 文件,你可以看到如下语句: 
apply plugin: ‘com.android.application’ 
2、 更改成如下: 
apply plugin: ‘com.android.library’ 
3、 点击 Sync Project with Gradle Files

就这么简单,整个模块无需改动。但是现在就可以作为 Library 并且生成 AAR 文件而不是 APK。

将你的 Library 添加为依赖

为了在其他 app 模块中使用你的 Android Library 代码,操作如下: 
1、 有两种方式添加 library 到你的项目中。 
添加编译后的 AAR(或者 JAR)文件: 
1) 单击 File > New Module。 
2) 单击 Import .JAR/.AAR Package 然后点击 Next。 
3) 输入 AAR 或者 JAR 文件的位置,然后点击 Finish。 
导入你的 Library 模块到你的项目: 
1) 单击 File > New > Import Module 
2) 输入 Library 模块的位置点击 Finish。 
Library 模块被复制到你的项目中所以你可以编辑 Library 代码。 
2、 确保 Library 列在 setting.gradel 文件的顶部。 
include ‘:app’, ‘:my-library-module’ 
3、 打开 app 模块的 build.gradle 文件添加一个新的依赖到 dependencies 中: 
dependencies { 
compile project(“:my-library-module”) 

4、 单击 Sync Project with Gradle Files。 
现在,你的 Android Library 中的任何代码和资源都是可以被你的 app 模块访问,Library 的 AAR 文件将会在你的 APK 打包的时候加入进去。

注意以下问题

1、 资源合并可能导致冲突 
2、 Library 模块可以包含 JAR 包。 
3、 Library 模块不能使用 raw 资源 
4、 App 模块的最小 SDK 版本必须等于或高于 Library 中的版本。 
5、 每个 Library 模块创建它自己的 R 类。

本文作者:宋志辉 
个人微博:点击进入

1.3、Android Studio创建一个Android Library

1.3、Android Studio创建一个Android Library

一个Android Library结构上与Android app模块相同。它可以包含构建一个app需要的所有东西,包括圆满,资源文件和AndroidManifest.xml。然而,并非编译成运行在设备上的APK,一个Android Library编译成其他Android app模块可以用作以来的AAR文件。 
一个Library模块在以下情形中是有用的: 
1、 当你构建多个使用相同组件,比如activity、service或者UI布局,的APP。 
2、 当你构建的APP存在多个APK文件。比如免费版和付费版APK。 
在这些案例中,简单的移动你想复用的文件到Library模块中,添加Library作为APP模块的依赖。

创建一个Library模块

为了创建一个新的Library模块到你的项目中,遵循如下步骤: 
1、 单击File > New > New Module 
2、 在Create New Module窗口出现时,点击Android Library。然后点击Next。 
这里同样有一个创建Java Library的可选项,可以构建一个传统的JAR文件。JAR文件在很多项目中都是可用的。特别是你想与其他平台分享代码,它不允许包含Android资源文件或者AndroidMainfest.xml,,这个在Android项目中是非常有用的,所以我们专注创建Android Library。 
3、 为你的Library设置一个名称并且选择一个最小的SDK,然后点击Finish。 
一旦Gradle项目同步完成。Library模块显示在Project左边的面板中。如果你没有看到新的模块文件夹,确保适应的是Android视图。

将App模块转化为Library模块

如果你有一个已经存在的app模块所有的代码你都想复用,你可以通过以下几部将其转化成Library模块。 
1、 打开build.gradle文件,你可以看到如下语句: 
apply plugin: ‘com.android.application’ 
2、 更改成如下: 
apply plugin: ‘com.android.library’ 
3、 点击Sync Project with Gradle Files

就这么简单,整个模块无需改动。但是现在就可以作为Library并且生成AAR文件而不是APK。

将你的Library添加为依赖

为了在其他app模块中使用你的Android Library代码,操作如下: 
1、 有两种方式添加library到你的项目中。 
添加编译后的AAR(或者JAR)文件: 
1) 单击 File > New Module。 
2) 单击 Import .JAR/.AAR Package 然后点击Next。 
3) 输入AAR或者JAR文件的位置,然后点击Finish。 
导入你的Library模块到你的项目: 
1) 单击 File > New > Import Module 
2) 输入Library 模块的位置点击Finish。 
Library模块被复制到你的项目中所以你可以编辑Library代码。 
2、 确保Library 列在setting.gradel文件的顶部。 
include ‘:app’, ‘:my-library-module’ 
3、 打开app模块的build.gradle文件添加一个新的依赖到dependencies中: 
dependencies { 
compile project(“:my-library-module”) 

4、 单击Sync Project with Gradle Files。 
现在,你的Android Library中的任何代码和资源都是可以被你的app模块访问,Library的AAR文件将会在你的APK打包的时候加入进去。

注意以下问题

1、 资源合并可能导致冲突 
2、 Library模块可以包含JAR 包。 
3、 Library模块不能使用 raw资源 
4、 App模块的最小SDK版本必须等于或高于Library中的版本。 
5、 每个Library模块创建它自己的R类。

本文作者:宋志辉 
个人微博:点击进入

Android library 依赖 aar

Android library 依赖 aar

既然你搜索了这样的关键字。。证明还是你有点水平的

也可能是这样的关键字:com.android.library 导入 aar 包

也可能是

如何生成.aar 包和如何在项目中引入 aar 包?

也可能是

Error:svn: E155010: Path ''E:\...\GFishing\other\youkuplayer\libs\YoukuPlayerOpenSDK-release.aar'' does not exist
> Could not resolve all dependencies for configuration '':app:_debugApk''.
   > A problem occurred configuring project '':library''.
      > Could not resolve all dependencies for configuration '':library:_debugPublishCopy''.
         > Could not find :YoukuPlayerOpenSDK-release:.
           Required by:
               project :library > project :youkuPlayer

 

aar 导入到 

''com.android.application'' 教程就很简单 但是我们按照那个教程就会出现上面的错误。

 解决

首先我们  aar 包叫 open_ad_sdk.aar

我们可以通过

 

成功导入后发生三处变化

 

 然后在 model 中引用使用即可 

因为 aar 相当于一个项目文件。能在 application 引用。不能再在项目文件中引用  但是经过处理后就可以了

 

Android Library和Android APP、Java Library的区别

Android Library和Android APP、Java Library的区别

Android Library和Android APP、Java Library的区别

  • Android Library在目录结构上与Android App相同,它能包含构建APP所需的一切(如源代码、资源文件、Android Manifest)。

  • Android App最终被编译打包成能在Android设备上运行的APK文件,但是Android Library被编译成供其它Android App依赖的Android Archive (AAR)文件。

  • Java Library最终被编译打包成Java Archive(JAR)文件,它不能打包Android资源文件,但是Android Library不仅能打包Java文件还能打包Android资源文件。

Android Library的使用场景

  • 当你需要向其它APP提供一个通用模块时。例如:你需要向其它APP提供通用的账户管理模块。

  • 当你需要构建不同的APK,但这些APK有共同核心功能时。例如:你的APP有免费版和付费版,但是它们有相同的核心功能。

在这两种情况下,只需将要重用的文件移动到Android Library中,然后将library添加为每个APP模块的依赖项,APP就能直接调用library中的功能,而不需要关心library的具体实现。

如何把App Module转换成Android Library Module

如果你的App Module的全部代码都可以重用,那么你可以把这个App Module转换成Android Library Module,步骤如下:

1、 打开App Module的build.gradle文件。

2、 删除applicationId这一行。只有App Module才需要定义applicationId。

3、 把文件顶部的 apply plugin: ''com.android.application'' 改为 apply plugin: ''com.android.library''

4、 保存文件,点击Tools > Android > Sync Project with Gradle Files。

这样就完成了App Module到Android Library Module的转换。 转换后Module的整个结构不变,但是它已经是一个Android Library Module了,编译后将生成AAR文件,而不是APK文件。

在Project面板中选中Library Module,然后点击Build > Build APK,就能编译生成对应的AAR文件到build>outputs>aar目录。

如何添加依赖Android Library

在其它App Module中使用Android Library中的代码的步骤如下:

方法一

添加编译生成的AAR文件到Project。

a、 点击File > New > New Module。

b、 点击Import .JAR/.AAR Package,然后点击Next。

c、 输入AAR文件的路径,然后点击Finish。

方法二

Import Android Library到Project(library的源代码就成了Project的一部分)。

a、 点击File > New > Import Module。

b、 输入library的目录地址,然后点击Finish。

这样library就被copy到Project,且你可以编辑library的代码。

如果你想只维护一份library的代码,那么应该使用方法一,而不应该使用方法二。

 

关于我

私人博客

微信公众号:infree6 或者直接扫码

关于android studio library 模块中正确引用aar的实例讲解androidstudio引入aar包的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于1.3、Android Studio 创建一个 Android Library、1.3、Android Studio创建一个Android Library、Android library 依赖 aar、Android Library和Android APP、Java Library的区别等相关内容,可以在本站寻找。

本文标签: