(1)从 AGP 4.1.2 升级到 7.5.1 我遇到了什么问题

Android升级AGP8,启用R8,使用fastjson、log4j,发现无法release,生成了也不能正常使用 自动升级后,使用了AGP8,然后出现一堆Missing Class错误,在项目的proguard-rules.pro文件中添加-ignorewarnings(AGP7之后warnings升级为errors,导致无法继续),总算生成了release版本。根据文档提示,在工程的gradle.properties中添加android.enableR8.fullMode=false,禁用掉fullmode,发现可以了,apk变大了将近1M,完全可以接受,还是比以前的release小将近一半。总之,应用已经废了。 阅读详情

在这里插入图片描述

AGP 升级问题

(1)Could not get unknown property ‘project’ for settings,on project.buildscript

问题

Could not get unknown property ‘project’ for settings ‘AGP1’ of type org.gradle.initialization.DefaultSettings.

agp4 时 Android 工程可运行模块同级目录下的自定义 Gradle 脚本能够直接使用内置的 project 属性(对象),到 apg7 怎么就不行了,如何兼容?

代码

// agp4 正常使用,apg7 下报错
project.buildscript.repositories {
    add(maven {
        url "https://******"
    })
}

APG4

println("==> config.gradle project: " + project)
println("==> config.gradle project.buildscript: " + project.buildscript)

==> config.gradle project: root project 'newyingxiaomb'
==> config.gradle project.buildscript: org.gradle.api.internal.initialization.DefaultScriptHandler@2afa7b34

APG7

println("==> config.gradle this: " + this)
println("==> config.gradle this.buildscript: " + this.buildscript)
println("==> config.gradle this.project: " + this.project)

==> config.gradle this: script
==> config.gradle this.buildscript: org.gradle.api.internal.initialization.DefaultScriptHandler@435d11ae

this 是 script 对象,this.project 没有输出,但 this.buildscript 和 agp4 对象类型还是一致的,满足我们的要求,可以使用 buildscript。注意:你可能知道再升级到 AGP7+ 之后工程配置发生了稍微的变化,比如以前写在 build.gradle 的配置后来移到 setting.gradle 里面去了!

解决

setting.gradle 引入的脚本执行 project.buildscript 找不到 project 属性,可以替换为 this.buildscript 。

(2)Could not get unknown property ‘project’ for settings,on project.getProjectDir()

问题

Caused by: groovy.lang.MissingPropertyException: Could not get unknown property ‘projectDir’ for settings ‘AGP1’ of type org.gradle.initialization.DefaultSettings.

同上,AGP7 setting 里面没有 project 对象了。

代码

def gradleWrapperFilePath = project.getProjectDir().getAbsolutePath() + "/gradle/wrapper/gradle-wrapper.properties"

AGP4、AGP7

println("==> config.gradle this.rootProject: " + this.rootProject)
println("==> config.gradle this.rootProject.projectDir: " + this.rootProject.projectDir)

println("==> config.gradle this.rootDir: " + this.rootDir)
println("==> config.gradle this.rootDir.path: " + this.rootDir.path)

// setting.gradle 里面输出 rootProject 竟然是空?但是 rootProject.projectDir 输出又是有值的!
==> config.gradle this.rootProject: :
==> config.gradle this.rootProject.projectDir: E:\ALLMine\tmpDemo\AGP1

==> config.gradle this.rootDir: E:\ALLMine\tmpDemo\AGP1
==> config.gradle this.rootDir.path: E:\ALLMine\tmpDemo\AGP1

解决

setting.gradle 引入的脚本执行 project.getProjectDir() 找不到 project 属性,可以替换为 rootProject.projectDir 或 rootDir.path。

(3)不允许 http 协议的仓库

问题

Using insecure protocols with repositories, without explicit opt-in, is unsupported. Switch Maven repository to redirect to a secure protocol (like HTTPS) or allow insecure protocols.

代码

maven {
    url "http://****"
}

解决

  • 存在 https 仓库的直接从 http 改为 https
  • 不存在 https 的,可以使用 allowInsecureProtocol true 允许不安全的 http
maven {
    allowInsecureProtocol true
    url "http://***"
}

//报错
maven { url 'http://developer.huawei.com/repo/' }
//存在 https 的,可以直接更改
maven { url 'https://developer.huawei.com/repo/' }

Tip:

  • dependencyResolutionManagement:全局仓库配置
  • pluginManagement:插件配置

(4)setting.gradle 里不存在 dependencies

  • Could not find method classpath() for arguments
  • all buildscript {} blocks must appear before any plugins {} blocks in the script

问题

Could not find method dependencies() for arguments [settings_***_closure4@6c051893] on object of type org.gradle.plugin.management.internal.DefaultPluginManagementSpec.

AGP7

//项目根目录下 build.gradle
buildscript {
    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72"
        classpath "com.bytedance.android.byteX:shrink-r-plugin:0.3.0"
        classpath "com.android.plugin:art:2.1.6"
        classpath "com.google.plugin.kt:remove-metadata:1.0.5"
        classpath "com.android.plugin:reann:1.0.1"
        classpath "com.android.plugin:resGuard:1.0.6"

    }
}

解决

(5)org.gradle.BuildListener 中 buildStarted 被移除

问题

‘buildStarted’ from class ‘com.*****$2’ does not override method from its superclass or interfaces but is annotated with @Override.

代码

 project.gradle.addBuildListener(new BuildListener() {
  		    @Override
            void buildStarted(Gradle gradle) {

            }
  
            @Override
            void settingsEvaluated(Settings settings) {

            }

            @Override
            void projectsLoaded(Gradle gradle) {

            }

            @Override
            void projectsEvaluated(Gradle gradle) {

            }

            @Override
            void buildFinished(BuildResult buildResult) {
                if (isDeleteObs) {
                    removeObsJar(mProject)
                }
            }
        })

解决

  • 移除 buildStarted 方法即可

(6)registerTransform、Transform 过时【暂不处理】

问题

The Transform API is planned to be removed in Android Gradle plugin 8.0.
There is no single replacement. For more information about how to migrate, see https://developer.android.com/studio/releases/gradle-plugin-roadmap

计划在 8.0 移除,我现在更新到 7+,躺平先不处理

代码

def android = project.extensions.getByType(AppExtension)
android.registerTransform(transform)

(7)Kotlin Gradle 版本过低

问题

The Android Gradle plugin supports only Kotlin Gradle plugin version 1.5.20 and higher.
The following dependencies do not satisfy the required version:
root project ‘AGP1’ -> org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32

解决

按提示升级即可

    dependencies {
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.20"
        //classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72"
}

(8)Build was configured to prefer settings repositories over project repositories but repository ‘maven’ was added

问题

Build was configured to prefer settings repositories over project repositories but repository ‘maven’ was added by plugin ‘com.primer.plugin’

插件内在 apply 方法中通过 buildscript 动态添加仓库

代码

target.parent.buildscript {

    repositories {
        mavenCentral()
        jcenter()
        google()
        // 其他第三方仓库
    }
}

解决

github issues

在这里插入图片描述

//setting.gradle
dependencyResolutionManagement {
    //新建项目默认配置
    //repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
    //repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)
    repositoriesMode.set(RepositoriesMode.PREFER_PROJECT)
}

还是有其他问题,暂未解决,见下一节吧,18:30 该下班了~

在这里插入图片描述

android中遇到ERROR: Could not find method clean() for arguments这个奇葩的错误如何解决!! 今天继续来记录我的学习博客,今天呢又是我的一个同学遇到了我从来没遇到的一个问题,那就是她在安装androidstudio软件的时候系统报出了这样一个错误: Could not find method clean() for arguments [{type=class org.gradle.api.tasks.Delete}, build_458py9op120bi768cfxm5xc2wrunclosure1_run_closure1r​unc​losure1_closure4@7daf132f] on object of type org.gradle.api.internal.initi 立即下载

相关推荐

HFSS 3D Layout一键导入PCB,高效搞定微带线损耗仿真

在高速PCB设计中,信号完整性与电磁仿真是确保链路质量的关键环节。传统的HFSS手动建模流程繁琐且极易出错,尤其面对微带线、带状线等高频结构时,叠层参数、铜箔粗糙度等细节难以精准还原,导致仿真结果与实测偏差较大。HFSS 3D Layout模块提供了从EDA工具直接导入PCB文件的能力,完整保留走线、过孔、叠层及材料属性,结合精确的介质损耗模型与端口设置,大幅缩短建模时间并提升仿真精度。该技术广泛应用于DDR、SerDes等高速数字链路的设计验证,以及SI/PI工程师对PCB损耗性能的快速评估。本文从导入操

weixin_29191081的博客 257

Android studio 报错Could not find method dependencyResolutionManagement() for arguments的解决方法

Android studio 报错Could not find method dependencyResolutionManagement() for arguments的解决方法

qq_27494201的博客 3980

西门子828D/840DSL数控机床产量数据采集实战:手把手教你绕过授权限制(附Demo源码)

本文详细介绍了西门子828D/840DSL数控机床产量数据采集的实战技术,包括绕过授权限制的替代方案和实现方法。通过分析通信协议、配置参数和数据处理,提供了一套高效且合规的数据采集解决方案,并附有Demo源码,帮助技术人员快速上手。

weixin_28278377的博客 763

Android Studio Gradle: Please remove usages of `jcenter()` Maven repository from your build scripts

打开App/Gradle Scripts/build.gradle(Project:---) Change the 'jcenter()' on build script{} and in all project repositories. and Sync now. 更改之前: buildscript { repositories { google() jcenter() } dependencies { classpa...

l3142600073的博客 7839

Vue3实战:企业级应用集成钉钉扫码登录全流程解析

本文详细解析了在Vue3企业级应用中集成钉钉扫码登录的全流程。从钉钉开放平台应用创建与配置,到Vue3前端如何优雅地嵌入并管理扫码组件,再到后端如何安全地处理OAuth 2.0授权码以换取用户信息并完成登录,提供了完整的实战代码与避坑指南。该方案能有效实现安全便捷的单点登录,统一企业身份认证。

weixin_29019241的博客 292

vue 获取el-table多选的选中行

<el-table :data='tableData' ref="multipleTable" v-loading='loading' border max-height='700' style='width: 100%' size="mini"> <el-table-column type="selection" width="55"></el-table-column> <el-table-column label

且听风吟的博客 6649

flutter2.1升级flutter3.0

尝试启动工程后,提示还有一些代码需要更改,一些包的升级以及业务代码中空安全的处理。更改gradle-wrapper.properties。下载最新fluttert版本 for github。改为官方camera,还有一些包的更新,如下。升级kotlin版本 及 gradle版本。编译时提示如下,修改为gradle对应版本。更改build.gradle。

zoeou的博客 7076

星宸科技SSD20x/SSD21X应用层DEMO实战指南:从入门到深度定制

本文详细介绍了星宸科技SSD20x/SSD21X系列芯片的应用层DEMO开发实战,从基础环境搭建到深度定制开发。内容涵盖DEMO资源获取、核心功能实现、第三方库集成以及性能优化技巧,帮助开发者快速掌握智能显示和多媒体处理应用的开发方法。特别适合嵌入式开发者在智能家居、工业控制等场景中应用。

weixin_42524226的博客 268

Android Gradle Plugin(AGP) 升级 3.0+ ,Gradle升级4.4+过程记录

一.背景 项目中原有的一些配置 Android Gradle Plugin(AGP)版本是2.3.1, Gradle的版本为gradle-3.5-all, Android Studio(3.1.3) JDK-7 此次的目标是升级到 Android Gradle Plugin(AGP)版本是3.1.3, Gradle的版本为gradle-4.7-all, Android Stu...

Android 是一种内伤 3524

1.2 从“跟网”到“构网”:技术范式的历史性转变

新型电力系统面临"双高"特征带来的稳定性挑战,促使并网控制技术从"跟网型"向"构网型"范式转变。传统跟网型变流器作为受控电流源依赖强电网,存在短路电流能力有限、易失稳等缺陷;而构网型变流器模拟同步发电机特性,作为受控电压源具备自主建立电压/频率、提供虚拟惯性、增强短路容量和改善系统阻尼四大核心能力。这一技术范式转变使变流器从电网跟随者变为构建支撑者,成为解决新能源大规模接入稳定性的关键。

技术工作者 725

SPI 总线信号完整性与时序一致性测试

SPI总线测试的核心目标是验证其电气与时序行为是否满足芯片规格要求,确保通信可靠性

硬核科技 330

Android中AGP各个版本都有哪些特性以及升级时需要注意的问题

Android AGP各个版本的特性

liupengcaho的博客 2808

【仿真技巧】Smart Eye Probe在ADS信号仿真中的应用

Smart_Eye_Probe是一个眼探头,允许灵活数量的输入通道,输入通道支持单端或差分信号的混合,并且,可以使用一个共同的时钟信号触发通道的眼图。目前,仅支持瞬态(Transient)和通道(Channel Sim)逐位模式(Bit by bit)模拟,不支持信道统计(Statistical)模式和DDR总线(DDRSim)仿真。

一只豌豆象的博客 1270

AGP 升级,适配 8.5 版本(一)

本次升级是从之前的 AGP7+ 升级到 AGP8+

Primer5 2839

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【Gradle】AGP升级7.0及适配Replugin的多包名工程改造

随着AGP版本以及kotlin的普及,以及compose逐渐被大家接受,为了可以使用更多的新特性以及更好的性能,升级Android Gradle Plugin(AGP)以及Kotlin Gradle Plugin (KGP)已经是必不可少的步骤之一,其中AGP版本7.0、8.0的更新有较大的变化,本文会对自己的玩安卓项目进行AGP7.0的升级并且分享最近遇到的多包名工程化改造以及适配遇到的问题。

weixin_41802023的博客 3311

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Android studio升级AGP需要注意哪些

deep seek回答:深度思考完成 用时26秒嗯,用户询问的是在Android Studio中升级AGP需要注意哪些事项。这个问题很实用,因为AGP升级确实是个容易踩坑的过程。让我看看搜索结果里有什么关键信息。首先注意到搜索结果里有几个高可信度的资料专门讲AGP升级注意事项12。核心要点包括环境兼容性检查:AGP版本必须和Gradle版本匹配,比如AGP 8.x需要Gradle 8.x1。JDK版本也很关键,AGP 8.x要求JDK 17,而7.x支持JDK 1116。

yzpbright的博客 1945

从 AGP 4.1.2 升级到 7.5.1——动态添加仓库

前一篇文章中使用的是默认配置,打包直接报错,后来改成 PREFER_SETTINGS 虽然规避了直接终止打包,但仓库不生效,未达到效果(不是说 prefer 首选配置吗,正常理解不应该也会生效才对嘛)~动态添加仓库,根据本次打包所带的不同渠道SDK添加对应的仓库地址,可以在 AGP7 中似乎没有生效,再打包过程中出现了报错。gradle Plugin 内如何动态添加仓库,在 AGP4+ 中插件内部通过。),通过 project 配置的仓库不生效。根据自身插件实际情况,我选择了。

Primer5 660

Android问题记录 - 适配Android Studio Ladybug/Java 21/AGP 8.0(持续更新)

Failed to transform core-for-system-modules.jar to match attributes

crasowas的博客 9917

AGP 升级问题续集来了,不看血亏,真是骚,在线app开发平台

public final class R { private R() { } //来自子模块cn.yan.libr.R$id.class下的属性 public static final class id { public static final int test_layout = 2130837504; private id() { } } … //主module和子module的各自属性合并 public static final class string { public static final i

m0_64603776的博客 1091

AGP 8.5.1升级指南:解决Android 16K Page Size适配中的常见问题

本文详细解析了升级AGP 8.5.1以适配Android 16K Page Size的完整实战流程。针对动态库(.so文件)对齐问题,提供了从问题诊断、依赖溯源到分步修复的系统性解决方案,帮助开发者彻底攻克兼容性难题,确保应用在新设备上稳定运行。

resnet7explorer的博客 364

Android Studio中AGP 与 Gradle 的区别

在 Android Studio 中,(简称 AGP)与Gradle是两个紧密相关但不同的构建组件,它们之间有。

photoshopjava的博客 1879

升级AGP(Android Gradle plugin)和gradle的版本可以提高kapt的执行速度吗

升级。

yzpbright的博客 784

适配 AGP8.5 版本,字节码转换(二)

今日图片时间:2025.02.14 周五地点:深大地铁站。

Primer5 1080

Unity Android Target API Level 升级到35

总结一下就是需要升级AGP,升级对应的Gradle版本,使用兼容的aapt2去构建。起初以为要用8.0以上AGP,折腾半天,JDK17又不支持,弯弯绕绕最后也是折腾好了。

weixin_55201233的博客 3917

AGP 升级问题续集来了,不看血亏,真是骚,kotlin集合操作符

flags: ACC_PUBLIC, ACC_STATIC, ACC_FINAL ConstantValue: int 2130837504 } InnerClasses: public static final #7= #2 of #6; //id=class cn/yan/libr/R$id of class cn/yan/libr/R 反编译主模块产物中 ASM 生成的R.jar中主模块自己合并的属性成员 final 且有明确初值的R$id.class也是 17,与上面一样,所以不再给出。 可以看到,

m0_64382743的博客 488

AGP 8.x vs AGP 9.x 稳定性对比, AGP 3.5.4项目迁移到 AGP 8.13

<think>我们根据要求:根据以下内容,生成≤150字的文章摘要。内容是关于AGP 8.x vs 9.x稳定性对比和迁移分析。需要提炼核心要点。注意字数限制。输出摘要。</think>AGP 8.13作为8.x最终版,经过两年迭代极其稳定,社区生态完善;而AGP 9.x虽为最新,但破坏性变更多、强制内置Kotlin,且第三方插件兼容性差。对纯Java项目,建议分步迁移至AGP 8.13(需改namespace、JDK 17、DSL等),暂缓升级9.x,待生态成熟后再考虑。

白高林的专栏 349
上一篇: 更新小米广告 SDK 我的插件闪退了!
下一篇: 从 AGP 4.1.2 升级到 7.5.1——动态添加仓库
Primer@.com
博客等级 码龄9年 524粉丝 292原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值