Android升级gradle 后引入aar包报错解决

 更新时间:2023年04月20日 08:53:39   作者:雮尘  
这篇文章主要为大家介绍了Android升级gradle 后引入aar包报错解决,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

问题

android 在升级 gradle 后,之前引入 aar 包的方式发生了变化,打包的时候会报错。报错信息大概如下:

Direct local .aar file dependencies are not supported when building an AAR. The resulting AAR would be broken because the classes and Android resources from any local .aar file dependencies would not be packaged in the resulting AAR. Previous versions of the Android Gradle Plugin produce broken AARs in this case too (despite not throwing this error). The following direct local .aar file dependencies of the :commonlib project caused this error: /Users/projectName/libs/staticip.aar

这里记录一下解决的过程。

环境

我这边项目使用的环境信息大概如下:

  • Android Studio:
Android Studio Flamingo | 2022.2.1
Build #AI-222.4459.24.2221.9862592, built on March 31, 2023
Runtime version: 17.0.6+0-17.0.6b802.4-9586694 aarch64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o.
macOS 13.3.1
GC: G1 Young Generation, G1 Old Generation
Memory: 3072M
Cores: 8
Metal Rendering is ON
Registry:
    editor.focus.mode.color.light=415967
    ide.editor.tab.selection.animation=true
    external.system.auto.import.disabled=true
    ide.text.editor.with.preview.show.floating.toolbar=false
    ide.new.editor.tabs.vertical.borders=true
    ide.balloon.shadow.size=0
    editor.focus.mode.color.dark=415967
    gradle.version.catalogs.dynamic.support=true
Non-Bundled Plugins:
    idea.plugin.protoeditor (222.4459.16)
    com.intellij.marketplace (222.4459.28)
    com.mallowigi (80.1.0)
    com.chrisrm.idea.MaterialThemeUI (7.14.2)
  • gradle 版本:
classpath 'com.android.tools.build:gradle:7.4.2'
  • aar 库引入方式:通过直接将 aar 包放到 libs 目录的方式引入。

解决步骤

1. 新建本地库目录

切换到 project 模式:

在项目根目录右键新建文件夹,名字随便,我这里设置为:LocalRepo

2. 新建 aar 模块

  • LocalRepo 目录中新建新文件夹,用于存放 aar 模块,我这里取名为:staticip
  • 将你原来在 libs 中的 aar 库剪切到 LocalRepo 目录下。
  • LocalRepo 目录中新建 build.gradle 文件,填入如下内容:
configurations.maybeCreate("default")  
artifacts.add("default", file("staticip.aar"))

记得将 staticip.aar 替换为你自己的 arr 库名。

最后的目录结构如下:

3. 导入模块

编辑 settings.gradle,加入如下内容:

include ':LocalRepo:staticip'

4. 引入模块

在你之前要引入这个 arr 库的模块中,修改它的 build.gradle 文件:

dependencies {
    implementation project(':LocalRepo:staticip')
}

5. 同步项目

最后别忘了 sync 一下:

总结

简单来讲,这个错误就是新版的 gradle 不支持直接导入 aar 库造成的,通过将 aar 库包装为模块的方式引入可以解决该问题。

以上就是Android升级gradle 后引入aar包报错解决的详细内容,更多关于Android升级gradle引入aar包的资料请关注脚本之家其它相关文章!

相关文章

  • Android中socket通信的简单实现

    Android中socket通信的简单实现

    这篇文章主要为大家详细介绍了Android中socket通信的简单实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • Android自定义View实现拖拽效果

    Android自定义View实现拖拽效果

    这篇文章主要为大家详细介绍了Android自定义View实现拖拽效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • Kotlin引用其他xml的view对象过程详解

    Kotlin引用其他xml的view对象过程详解

    这篇文章主要介绍了Kotlin中如何引用其他xml中的view对象,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-02-02
  • Android SlidingDrawer 抽屉效果的实现

    Android SlidingDrawer 抽屉效果的实现

    本篇文章小编为大家介绍,Android SlidingDrawer 抽屉效果的实现。需要的朋友参考下
    2013-04-04
  • Android中巧妙的实现缓存详解

    Android中巧妙的实现缓存详解

    采用缓存,可以进一步大大缓解数据交互的压力,有的时候为了快速查询会被多次调用的数据,或者构建比较废时的实例,我们一般使用缓存的方法。无论大型或小型应用,灵活的缓存可以说不仅大大减轻了服务器的压力,而且因为更快速的用户体验而方便了用户。下面来一起看看吧。
    2016-11-11
  • Android实现点击某个按钮指定位置弹出布局

    Android实现点击某个按钮指定位置弹出布局

    这篇文章主要介绍了Android实现点击某个按钮指定位置弹出布局,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • Android显示系统SurfaceFlinger分析

    Android显示系统SurfaceFlinger分析

    本文详细讲解了Android显示系统SurfaceFlinger,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • Android ImageView 固定宽高比例的实现方法

    Android ImageView 固定宽高比例的实现方法

    这篇文章主要介绍了Android ImageView 固定宽高比例的实现方法的相关资料,,方法一:设置 adjustViewBounds="true",方法二:使用 Universal-Image-Loader 图片缓存类,需要注意的是方法二和方法一同时使用导致设置无效,需要的朋友可以参考下
    2017-07-07
  • Templates实战之更优雅实现自定义View构造方法详解

    Templates实战之更优雅实现自定义View构造方法详解

    本篇文章介绍如何利用Android Studio提供的Live Templates更优雅实现自定义View的构造方法,说句人话就是:简化自定义View构造参数模板代码的编写,实现自动生成,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • Kotlin静态方法的使用浅析

    Kotlin静态方法的使用浅析

    静态方法在其他高级语言(如C++,Java)中也叫类方法。静态方法在调用时无需创建实例,通过类名.方法名的方式调用。在java中调用静态方法的只需在声明前面加关键字static即可。而kotlin中却比较复杂,下面我们来了解一下
    2022-08-08

最新评论