当前位置: 首页 > news >正文

Android Studio加载旧的安卓工程项目报错处理

文章目录

  • Invalid Gradle JDK configuration found
  • NDK not configured
  • CMake '3.10.2' was not found
    • 安装cmake
    • 适配cmake版本号
  • com.intellij.openapi.externalSystem.model.ExternalSystemException
  • gradle版本过低或下载不了
  • 下载gradle与依赖库超时
    • 替换gradle国内源
    • 替换Maven 仓库的镜像为国内源

新版本的Android Studio加载旧的安卓工程项目,会报各种问题

  1. Invalid Gradle JDK configuration found
  2. NDK not configured. Download it with SDK manager. Preferred NDK version is
  3. CMake ‘3.10.2’ was not found in PATH or by cmake.dir property
  4. com.intellij.openapi.externalSystem.model.ExternalSystemException
  5. gradle下载不了或time out

Invalid Gradle JDK configuration found

在这里插入图片描述
点击Select the Gradle JDK location
或者点击Android Studio–>Settings找到下面选项
Build, Execution, Deployment | Build Tools | Gradle
在这里插入图片描述
在Gradle JDK这行,选择系统中已经有的适合的。

NDK not configured

NDK not configured. Download it with SDK manager. Preferred NDK version is ‘21.1.6352462’
在这里插入图片描述
这里会提示未配置NDK, 且提示中会建议要配置哪个版本号,比如上图中提示的ndkVersion ‘21.1.6352462’

那么把这个建议的版本号替换到app/build.gradle中旧的版本号就行了。
修正:
app/build.gradle

diff --git a/app/build.gradle b/app/build.gradle
index 7daf6a1..a29085d 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -43,7 +43,7 @@ android {sourceCompatibility JavaVersion.VERSION_1_8targetCompatibility JavaVersion.VERSION_1_8}
-    ndkVersion '21.3.6528147'
+    ndkVersion '21.1.6352462'}

CMake ‘3.10.2’ was not found

错误
CMake ‘3.10.2’ was not found in PATH or by cmake.dir property.
在这里插入图片描述

  1. 可能是系统中没有安装CMake
  2. 也可能是系统中的Cmake版本号不对应,不是配置要求的3.10.2

安装cmake

Android Studio–> Tools-- >SDK Manager
点击选中CMake,就可以自动安装到 Android SDK的路径下
在这里插入图片描述

适配cmake版本号

安装成功后查看下版本号:
cmake --version指令查看,

如果安装后提示not found: cmake,则要配置下环境变量PATH
在这里插入图片描述
Mac中修改~/.bash_profile
把刚刚安装的cmake的bin路径加到PATH中

export PATH=$PATH:/Users/temp/Library/Android/sdk/cmake/3.30.5/bin

再次查看,就可以在命令行看到cmake指令及版本了
在这里插入图片描述
app/build.gradle中cmake的版本号与系统中安装的cmake版本如果不一样,也会报错,需要修改

diff --git a/app/build.gradle b/app/build.gradle
index 7daf6a1..a714679 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -36,14 +36,14 @@ android {externalNativeBuild {cmake {path "src/main/cpp/CMakeLists.txt"
-            version "3.10.2"
+            version "3.30.5"}}

com.intellij.openapi.externalSystem.model.ExternalSystemException

com.intellij.openapi.externalSystem.model.ExternalSystemException: at com.intellij.gradle.toolingExtension.impl.modelAction.GradleModelFetchAction.addModels(GradleModelFetchAction.java:183)at com.intellij.gradle.toolingExtension.impl.modelAction.GradleModelFetchAction.lambda$execute$1(GradleModelFetchAction.java:73)at com.intellij.gradle.toolingExtension.impl.telemetry.GradleOpenTelemetry.lambda$runWithSpan$1(GradleOpenTelemetry.java:87)at com.intellij.gradle.toolingExtension.impl.telemetry.GradleOpenTelemetry.callWithSpan(GradleOpenTelemetry.java:73)at com.intellij.gradle.toolingExtension.impl.telemetry.GradleOpenTelemetry.callWithSpan(GradleOpenTelemetry.java:61)at com.intellij.gradle.toolingExtension.impl.telemetry.GradleOpenTelemetry.runWithSpan(GradleOpenTelemetry.java:86)at com.intellij.gradle.toolingExtension.impl.modelAction.GradleModelFetchAction.execute(GradleModelFetchAction.java:73)at org.jetbrains.plugins.gradle.model.ProjectImportAction.doExecute(ProjectImportAction.java:170)

在这里插入图片描述

build.gradle中配置的gradle版本号过低,在高版本Android Studio中会报错
在这里插入图片描述

修复:
修改build.gradle中版本号为新版本

diff --git a/build.gradle b/build.gradle
index 15087da..a5a4b7d 100644
--- a/build.gradle
+++ b/build.gradledependencies {
-        classpath "com.android.tools.build:gradle:4.1.0"
+        classpath "com.android.tools.build:gradle:7.1.1"

在这里插入图片描述

gradle版本过低或下载不了

在这里插入图片描述

gradle版本过低或下载超时提示url不存在的,可以通过修改gradle-wrapper.properties中的url来解决,把版本号改成较新的,另外把url中域名改成国内的域名,比如阿里的。

diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties
index bc2dd44..292d061 100644
--- a/gradle/wrapper/gradle-wrapper.properties
+++ b/gradle/wrapper/gradle-wrapper.properties
@@ -1,6 +1,6 @@
-#Wed Nov 04 15:11:01 CST 2020
+#Wed Nov 06 11:06:30 CST 2024distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/dists
+distributionUrl=https\://mirrors.aliyun.com/macports/distfiles/gradle//gradle-7.2-bin.zipzipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-bin.zip

在这里插入图片描述

下载gradle与依赖库超时

Failed to resolve: com.blankj:utilcode:1.29.0

替换gradle国内源

在这里插入图片描述
修改grale/gradle-wrapper.properties
把distributionUrl=https://services.gradle.org/distributions/gradle-7.2-bin.zip
修改为
distributionUrl=https://mirrors.aliyun.com/macports/distfiles/gradle//gradle-7.2-bin.zip

替换Maven 仓库的镜像为国内源

修改build.gradle

 buildscript {repositories {google()jcenter()}}allprojects {repositories {google()jcenter()}}

改为以下内容:

buildscript {repositories {maven { url = uri("https://maven.aliyun.com/repository/releases") }maven { url = uri("https://maven.aliyun.com/repository/google") }maven { url = uri("https://maven.aliyun.com/repository/central") }maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin") }maven { url = uri("https://maven.aliyun.com/repository/public") }}
}allprojects {repositories {maven { url = uri("https://maven.aliyun.com/repository/releases") }maven { url = uri("https://maven.aliyun.com/repository/google") }maven { url = uri("https://maven.aliyun.com/repository/central") }maven { url = uri("https://maven.aliyun.com/repository/gradle-plugin") }maven { url = uri("https://maven.aliyun.com/repository/public") }}
}

作者:帅得不敢出门

相关文章:

Android Studio加载旧的安卓工程项目报错处理

文章目录 Invalid Gradle JDK configuration foundNDK not configuredCMake 3.10.2 was not found安装cmake适配cmake版本号 com.intellij.openapi.externalSystem.model.ExternalSystemExceptiongradle版本过低或下载不了下载gradle与依赖库超时替换gradle国内源替换Maven 仓库…...

阿里公告:停止 EasyExcel 更新与维护

最近,阿里发布公告通知,将停止对知名 Java Excel 工具库 EasyExcel 的更新和维护。EasyExcel 由阿里巴巴开源,作者是玉箫,在 GitHub 上拥有 30k stars、7.5k forks 的高人气。 据悉,EasyExcel 作者玉箫去年已从阿里离…...

Spring 中的 BeanWrapper

BeanWrapper 是 Spring 框架中的一个接口,它提供了一种方式来设置和获取 JavaBean 的属性。JavaBean 是一种特殊的 Java 类,遵循特定的编码约定(例如,私有属性和公共的 getter/setter 方法),通常用于封装数…...

2024鹏城杯msic部分WP

MISC 网安第一课 查找字符key,发现key1,但是没看到key2 后缀改为zip,打开以后发现不一样的地方,三张图片和一个misc文件夹 图片放到010看一眼 编号为1的图片在文件尾发现key2 misc文件夹中是一个out.pcb,放到010发现…...

DAY23|回溯算法Part02|LeetCode: 39. 组合总和 、40.组合总和II 、131.分割回文串

目录 LeetCode: 39. 组合总和 基本思路 C代码 LeetCode: 40.组合总和II 基本思路 C代码 LeetCode: 131.分割回文串 基本思路 C代码 LeetCode: 39. 组合总和 力扣代码链接 文字讲解:LeetCode: 39. 组合总和 视频讲解:带你学透回溯算法-组合总和…...

go map

1、数据结构 // A header for a Go map. type hmap struct {// Note: the format of the hmap is also encoded in cmd/compile/internal/reflectdata/reflect.go.// Make sure this stays in sync with the compilers definition.count int // # live cells size of map.…...

三十七、Python基础语法(异常)

在 Python 中,异常是在程序执行过程中发生的错误情况。当出现异常时,程序的正常执行流程会被中断,并尝试寻找相应的异常处理机制来处理这个错误。 一、异常的类型 Python 中有很多内置的异常类型,例如: ZeroDivision…...

ThreadLocal的熟悉与使用

目录 1.ThreadLocal介绍2.ThreadLocal源码解析2.1 常用方法2.2 结构设计2.3 类图2.4 源码分析2.4.1 set方法分析2.4.2 get方法分析2.4.3 remove方法分析 3.ThreadLocal内存泄漏分析3.1 相关概念3.1.1 内存溢出3.1.2 内存泄漏3.1.3 强引用3.1.4 弱引用 3.2 内存泄漏是否和key使用…...

如何使用 Puppeteer 和 Browserless 抓取亚马逊产品数据?

您可以在亚马逊上找到所有有关产品、卖家、评论、评分、特价、新闻等的相关且有价值的信息。无论是卖家进行市场调研还是个人收集数据,使用高质量、便捷且快速的工具将极大地帮助您准确地抓取亚马逊上的各种信息。 为什么抓取亚马逊产品数据很重要? 亚…...

使用Python求解经典“三门问题”,揭示概率的奇妙之处

三门问题(Monty Hall Problem)是经典的概率问题,描述了一位游戏选手在三个门中选择一扇门,其中一扇门后有奖品,其余两扇门后是空的。选手做出选择后,主持人会打开另一扇空门,然后给选手一次更改…...

数据库基础(6) . DDL

3.2.DDL 数据定义语言 DDL : Data Definition Language 用于创建新的数据库、模式(schema)、表(tables)、视图(views)以及索引(indexes)等。 常见的DDL语句包括SHOW、CREATE、DRO…...

2024 年度分布式电力推进(DEP)系统发展探究

分布式电力推进 (DEP) 的发明是为了尝试和改进现代飞机:我们如何提高飞机的效率?提高它的机动性?缩短它的起飞和着陆距离? DEP 概念有望在提高性能的同时减少燃料消耗,在我们孜孜不倦地努力使航…...

vue通过iframe方式嵌套grafana图表

文章目录 前言一、iframe方式实现xxx.xxx.com拒绝连接登录不跳转Cookie 的SameSite问题解决不显示额外区域(kiosk1) 前言 我们的前端是vue实现的,监控图表是在grafana中的,需要在项目web页面直接显示grafana图表 一、iframe方式实现 xxx.xxx.com拒绝连…...

简单介绍下 Java 中的 @Validated 和 @Valid 注解的区别?

文章目录 Valid:专注单个对象的深度验证适用场景使用示例小结 Validated:聚焦接口分组的批量验证适用场景使用示例小结 主要区别总结如何选择?总结推荐阅读文章 在 Java 开发中,为了确保输入数据符合我们的要求,少不了…...

SpringBoot配置Rabbit中的MessageConverter对象

SpringAMQP默认使用SimpleMessageConverter组件对消息内容进行转换 SimpleMessageConverter: only supports String, byte[] and Serializable payloads仅仅支持String、Byte[]和Serializable对象Jackson2JsonMessageConverter:was expecting (JSON Str…...

C++ 错题本--duplicate symbol问题

顾名思义, duplicate symbol是重复符号的意思! 代码是用来做什么的(问题缘由 & 代码结构) 写排序算法, 提出了一个公共的头文件用来写一些工具方法, 比如打印数组内容. 以便于不同文件代码需要打印数组内容的时候,直接引入相关头文件即可, 但是编译时出现了 duplicate sym…...

Cursor的chat与composer的使用体验分享

经过一段时间的试用,下面对 Composer 与 Chat 的使用差别进行总结: 一、长文本及程序文件处理方面 Composer 在处理长文本时表现较为稳定,可以对长文进行更改而不会出现内容丢失的情况。而 Chat 在更改长的程序文件时,有时会删除…...

【优选算法 — 滑动窗口】最大连续1的个数 将 x 减到0的最小操作数

最大连续1的个数 最大连续1的个数 题目描述 题目解析 给我们一个元素全是0或者1的数组&#xff0c;和一个整数 k &#xff0c;然后让我们在数组选出最多的 k 个0&#xff1b;这里翻转最多 k 个0的意思&#xff0c;是翻转 0 的个数< k&#xff0c;而不是一定要翻转 k …...

《TCP/IP网络编程》学习笔记 | Chapter 8:域名及网络地址

《TCP/IP网络编程》学习笔记 | Chapter 8&#xff1a;域名及网络地址 《TCP/IP网络编程》学习笔记 | Chapter 8&#xff1a;域名及网络地址域名系统什么是域名&#xff1f;DNS 服务器IP 地址和域名之间的转换使用域名的必要性利用域名获取 IP 地址利用 IP 地址获取域名 基于 Wi…...

FastHTML快速入门:调试模式和 URL中的变量

调试模式 FastHTML基于FastAPI友好的装饰器模式来指定URL&#xff0c;并添加了额外功能&#xff1a; main.py from fasthtml.common import * app, rt fast_app() rt("/") def get():return Titled("FastHTML", P("让我们开始吧&#xff01;"…...

C++高级编程(8)

八、标准IO库 1.输入输出流类 1)非格式化输入输出 2)put #include <iostream> #include <string> ​ using namespace std; int main() {string str "123456789";for (int i str.length() - 1; i > 0; i--) {cout.put(str[i]); //从最后一个字符开…...

AUTOSAR_EXP_ARAComAPI的7章笔记(2)

☞返回总目录 相关总结&#xff1a;服务发现实现策略总结 7.2 服务发现的实现策略 如前面章节所述&#xff0c;ara::com 期望产品供应商实现服务发现的功能。服务发现功能基本上是在 API 级别通过 FindService、OfferService 和 StopOfferService 方法定义的&#xff0c;协议…...

【C++】 C++游戏设计---五子棋小游戏

1. 游戏介绍 一个简单的 C 五子棋小游戏 1.1 游戏规则&#xff1a; 双人轮流输入下入点坐标横竖撇捺先成五子连线者胜同一坐标点不允许重复输入 1.2 初始化与游戏界面 初始化界面 X 输入坐标后 O 输入坐标后 X 先达到胜出条件 2. 源代码 #include <iostream> #i…...

仿RabitMQ 模拟实现消息队列项目开发文档2(个人项目)

项目需求分析 核心概念 现在需要将这个项目梳理清楚了&#xff0c;便于之后的代码实现。项目中具有一个生产消费模型&#xff1a; 其中生产者和消费者的个数是可以灵活改变的&#xff0c;让系统资源更加合理的分配。消息队列的主逻辑和上面的逻辑基本一样&#xff0c;只不过我…...

李佳琦回到巅峰背后,双11成直播电商分水岭

时间倏忽而过&#xff0c;又一年的双11即将宣告结束。 从双11正式开始前的《新所有女生的offer》&#xff0c;到被作为“比价”标杆被其他平台直播间蹭、被与其他渠道品牌比较&#xff0c;再到直播间运营一时手快多发了红包……整个双11周期下来&#xff0c;李佳琦直播间在刷新…...

云计算在教育领域的应用

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 云计算在教育领域的应用 云计算在教育领域的应用 云计算在教育领域的应用 引言 云计算概述 定义与原理 发展历程 云计算的关键技…...

C语言 | Leetcode C语言题解之第543题二叉树的直径

题目&#xff1a; 题解&#xff1a; typedef struct TreeNode Node;int method (Node* root, int* max) {if (root NULL) return 0;int left method (root->left, max);int right method (root->right, max);*max *max > (left right) ? *max : (left right);…...

6、If、While、For、Switch

6、If、While、For、Switch 一、If 1、if-else if (boolean) {代码块 } else if (boolean) {代码块 } else if (boolean) {代码块 } else { // 默认情况代码块 }关于IDEA单元测试控制台不能输入数据的问题&#xff1a; https://blog.csdn.net/m0_72900498/article/details/…...

萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?

随着智慧城市和数字化转型的推进&#xff0c;视频监控系统已成为保障公共安全、提升管理效率的重要工具。特别是在大中型项目中&#xff0c;跨区域的网络化视频监控需求日益增长&#xff0c;这要求视频监控管理平台不仅要具备强大的视频资源管理能力&#xff0c;还要能够适应多…...

【多线程】线程池如何知道一个线程的任务已经完成

目录 1. 说明2. 任务的生命周期3. 状态更新4. 线程间的协作5. 内部数据结构6. 回调与通知7. 线程池的关闭与清理 1. 说明 1.线程池通过一系列内部机制来知道一个线程的任务已经完成。2.这些机制主要涉及任务的生命周期管理、状态更新以及线程间的协作。 2. 任务的生命周期 1…...

做设计需要知道的几个网站/企业管理

本篇内容为函数极限的性质&#xff0c;在1.1总结过了数列极限的性质&#xff0c;包括唯一性、有界性和保号性&#xff0c;数列作为一种特殊的函数有这些性质&#xff0c;那么函数呢&#xff1f;函数同样具有着三种性质。 函数极限的性质 唯一性&#xff0c;函数有极限必唯一 …...

最近新冠疫情最新动态/上海专业seo排名优化

This question already has an answer here:這個問題已經有了答案:Say I have a variable named choice it is equal to 2. How would I access the name of the variable? Something equivalent to假設有一個變量&#xff0c;它等於2。如何訪問變量的名稱?一些相當於In [53]…...

洛阳营销型网站建设/公关策划公司

在使用MOS管设计开关电源或者马达驱动电路的时候,大部分人都会考虑MOS的导通电阻,最大电压等,最大电流等,也有很多人仅仅考虑这些因素。这样的电路也许是可以工作的,但并不是优秀的,作为正式的产品设计也是不允许的。 下面是我对MOSFET及MOSFET驱动电路基础的一点总结,其…...

科技网站有哪些/网站关键词排名外包

微信小游戏开发过程中&#xff0c;在Cocos Creator刚构建完&#xff0c;点运行到微信开发者工具上&#xff0c;就出现上面这个报错提示。一、 原因分析app.json找不着&#xff0c;这是走的微信小程序入口&#xff0c;而不是微信小游戏入口&#xff0c;微信小游戏入口应该是game…...

网站设计培训班如何/搜狗链接提交入口

在应用中有时我们希望在不中断应用界面导航的前提下&#xff0c;我们希望插入一个展示内容的窗口。我们可以是用DefaultSheet及ComposerSheet来显示我们所需要的内容。其实在以前我们的Dialog教程中&#xff0c;有类似的功能尽管展示有一点不同。 我们来做一个练习&#xff1a;…...

全国城市雕塑建设指导委员会网站/seo外包服务方案

线段树 和BZOJ那道楼房重建有点像&#xff0c;用线段树维护两个值&#xff1a;可以摘的苹果和区间最大值。 每次pushup的时候左子树是肯定能够算的&#xff0c;剩下的算右子树就好了。 右子树的最大值如果小于左子树&#xff0c;那么贡献是0。 否则&#xff0c;看右子树的左子树…...