apk 作为资源提供 aar 的过程

1:参考:Android将APK项目封装为SDK(AAR)

https://blog.csdn.net/weixin_51522235/article/details/128216091

四大点:1:

apply plugin:'com.android.library'

2:去掉:applicationId

3:去掉:applicationVariants.all 设置输出信息的,可以要可以不要。或者换成libraryVariants

libraryVariants.all 
libraryVariants.all { variant ->
     variant.outputs.all {
         if (supportEazyConnect) {
             outputFileName = "${appName}_TIC-${appVersionName}-${variant.name}.aar"
         } else {
             outputFileName = "${appName}-${appVersionName}-${variant.name}.aar"
         }

     }
 }

applicationVariants.all{ variant -> variant.outputs.all { if (supportEazyConnect) { outputFileName = "${appName}_TIC-${appVersionName}-${variant.name}.apk" } else { outputFileName = "${appName}-${appVersionName}-${variant.name}.apk" } } }

4:删除main launcher 意图过滤器的内容

     还有name,label ,incon 文档中的那几个

一般在修改完app gradle之后sync同步一下,

然后就是gradle  task build 

有些在这一步就找不到了。

Android Studio Gradle中没有Task任务

Android Studio Gradle中没有Task任务 - 简书 (jianshu.com)https://www.jianshu.com/p/41a750d21012

   1:可以通过设置File->setting -->Experimental→取消勾选“Do not build Gradle task list during Gradle sync"

2:然后通过File→Sync Project with Gradle Files  这一步特别重要

双击编译

在这个里面容易出现这种错误:

namespace for attribute app:headUrl wili be ignore

@XXX("app:url") 这种一般要去掉app,参考:namespace for attribute app:headUrl wili be ignore - 知乎 (zhihu.com)icon-default.png?t=N4HBhttps://zhuanlan.zhihu.com/p/338924304

然后就会有结果出来了 aar.

打完了收工,希望帮助到你 

Android 开发中,AAR 库中的资源 ID 是由编译器在编译 AAR 文件时自动生成的,这些 ID 在编译时是固定的,不会随着应用程序的不同构建而改变。但是,在将 AAR 文件打包到 APK 文件中时,Android 编译器会重新生成资源 ID,这可能会导致在应用程序中引用 AAR 库中的资源时出现问题。 为了避免这个问题,可以使用 `namespaced resources` 机制来隔离不同库中的资源 ID,确保每个库中的资源 ID 都是唯一的。这个机制是在 Android 8.0(API 级别 26)引入的。 使用 `namespaced resources` 机制,可以在 AAR 库中使用 `res-auto` 命名空间来定义资源,例如: ```xml <resources> <attr name="my_custom_attr" format="string"/> <string name="my_custom_string">Hello, world!</string> </resources> ``` 在应用程序中使用这个 AAR 库时,可以使用 `R.attr.my_custom_attr` 或 `R.string.my_custom_string` 来访问相应的资源。这样,在编译时就可以自动为 AAR 库中定义的资源 ID 添加前缀,避免与应用程序中的资源 ID 冲突。 需要注意的是,如果你使用了 Android 8.0 以下的版本,不支持 `namespaced resources` 机制,这种情况下,你需要手动确保 AAR 库中定义的资源 ID 不会与应用程序中的资源 ID 发生冲突。一种解决方案是在 AAR 库中使用一个前缀来为其资源 ID 添加命名空间,例如 `my_library_custom_string`,然后在应用程序中使用 `R.string.my_library_custom_string` 来引用 AAR 库中的资源
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值