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

OSPF排错

目录

实验拓扑图

实验要求

实验排错

故障一

故障现象

故障分析

故障解决

故障二

故障现象

故障分析

故障解决

故障三

故障现象

故障分析

故障解决

故障四

故障现象

故障分析

故障解决

故障五

故障现象

故障分析

故障解决

故障六

故障现象

故障分析

故障解决

故障七

故障现象

故障分析

故障解决


实验拓扑图


 实验要求

  1. 按照图示配置 IP 地址
  2. 按照图示分区域配置 OSPF,要求使用环回口作为 Router-id,ABR 的环回口只宣告进Area0
  3. 业务网段不允许出现协议报文
  4. R5 模拟互联网,内网通过 R1 连接互联网,在 R1 上配置默认路由并引入到 OSPF
  5. R1 上配置 EASY IP,两个业务网段都可以访问互联网
  6. 通过调整链路 Cost,避免网络中出现等价路由
  7. 为了实现 Area 0 快速收敛,10.1.1.0/24 链路上修改 Hello time 为 5 秒
  8. 排除所有网络故障,使环境符合需求,并完成排错报告

实验排错

故障一

故障现象

R1和R2之间未建立OSPF邻居

R1和R3之间,R2和R4之间都未建立OSPF邻居

故障分析

R1和R2,R1和R3,R2和R4之间的OSPF宣告配置有问题

R2与R1相连的10.1.1.0网段被宣告到了area 1中,所以R1和R2未能建立起邻居关系

同理,R1和R3之间,R1上也未宣告连接R3的网段

故障解决

将R2上连接R1的网段宣告到区域1中

[R2-ospf-1-area-0.0.0.1]undo network 10.1.1.0 0.0.0.255
[R2-ospf-1-area-0.0.0.1]qu
[R2-ospf-1]area  0
[R2-ospf-1-area-0.0.0.0]network 10.1.1.0 0.0.0.255

故障二

故障现象

当我们将R1和R2之间的宣告配置修改正确之后,R1和R2之间区域0的邻居还是建立不起来

故障分析

建立OSPF邻居失败,我们可以通过命令去查看邻居建立失败的原因

[R2]display ospf statistics error 

可以发现是由于以下三个主要原因,因为完成要求七中实现Area 0快速收敛,需要修改10.1.1.0/24这条链路的hello time为5s,但是只修改了R2这边的接口,R1这边的接口的dead time与R2的不相同,所以邻居建立失败。 

故障解决

修改R2上10.1.1.0/24这条链路的接口的dead time 和 hello time与R1保持一致

[R1-GigabitEthernet0/1]ospf timer hello 5 
[R1-GigabitEthernet0/1]undo ospf timer dead 

可以看出R1和R2已经建立了OSPF邻接关系 

[R1]display ospf peer OSPF Process 1 with Router ID 1.1.1.1Neighbor Brief InformationArea: 0.0.0.0        Router ID       Address         Pri Dead-Time  State             Interface4.4.4.4         10.1.1.2        1   15         Full/DR           GE0/1
[R1][R2]display ospf peer OSPF Process 1 with Router ID 4.4.4.4Neighbor Brief InformationArea: 0.0.0.0        Router ID       Address         Pri Dead-Time  State             Interface1.1.1.1         10.1.1.1        1   20         Full/BDR          GE0/1
[R2]

故障三

解决了故障二之后,我们发现R1和R2虽然建立了邻接,但是R1与R3,R2与R4之间的邻居始终未能建立。

故障现象

通过观察OSPF错误的原因发现一个是错误的area id造成,一个是hello time dead time造成,那么我们主要来看area id是否错误。

[R1]display ospf statistics error OSPF Process 1 with Router ID 1.1.1.1OSPF Packet Error Statistics 0         : Router ID confusion        0         : Bad packet0         : Bad version                0         : Bad checksum30        : Bad area ID                0         : Drop on unnumbered link0         : Bad virtual link           0         : Bad authentication type0         : Bad authentication key     0         : Packet too small0         : Neighbor state low         0         : Transmit error0         : Interface down             0         : Unknown neighbor187       : HELLO: Netmask mismatch    78        : HELLO: Hello-time mismatch3         : HELLO: Dead-time mismatch  0         : HELLO: Ebit option mismatch0         : DD: MTU option mismatch    0         : DD: Unknown LSA type0         : DD: Ebit option mismatch   0         : ACK: Bad ack0         : ACK: Unknown LSA type      0         : REQ: Empty request0         : REQ: Bad request           0         : UPD: LSA checksum bad0         : UPD: Unknown LSA type      0         : UPD: Less recent LSA
[R1]

故障分析

通过查看R1和R3在area 1的配置发现area id并没有配错。

那我们只能通过排查影响OSPF邻居建立的因素有哪些
  1. 宣告网段需要在同一个area id中
  2. 建立邻居关系的两个设备之间router id不能相同
  3. 宣告的网段子网掩码要相同
  4. 邻居之间链路hello time和dead time保持相同
  5. 验证密码一致
  6. 特殊区域一致

通过查看R1和R3相连链路接口的IP地址,发现它们的子网掩码长度不一致。所以这就是R1和R3之间未能建立邻居关系的真正原因

[R1-GigabitEthernet0/0]di th
#
interface GigabitEthernet0/0port link-mode routecombo enable copperip address 10.2.2.1 255.255.0.0
#
return
[R1-GigabitEthernet0/0][R3-GigabitEthernet0/0]display this
#
interface GigabitEthernet0/0port link-mode routecombo enable copperip address 10.2.2.3 255.255.255.0
#
return
[R3-GigabitEthernet0/0]

故障解决

修改R1接口的IP地址子网掩码长度 

R1与R2和R3成功建立邻接关系

[R1]display ospf peer OSPF Process 1 with Router ID 1.1.1.1Neighbor Brief InformationArea: 0.0.0.0        Router ID       Address         Pri Dead-Time  State             Interface4.4.4.4         10.1.1.2        1   18         Full/DR           GE0/1Area: 0.0.0.1        Router ID       Address         Pri Dead-Time  State             Interface3.3.3.3         10.2.2.3        1   37         Full/DR           GE0/0
[R1]

故障四

故障现象

R2和R4之间的邻居关系无法建立

故障分析

在R1和R2建立邻接关系后,我们可以发现R2这台设备的router id为4.4.4.4,虽然在区域0中和R1建立邻接关系时,这个router id 只要不与R1的router id  相同就行,但是R2在区域1中和R4建立邻接关系时,R4的router id也是4.4.4.4,所以它们的router id相同,导致它们之间无法建立邻居关系。

故障解决

将R2的router id 改为2.2.2.2,需要将ospf进程重启之后新的router id才会生效。

可以看到R2在重启了进程之后,router id 修改成功并于R4建立了邻接关系

<R2>reset ospf process 
Reset OSPF process? [Y/N]:y[R2]display ospf peer OSPF Process 1 with Router ID 2.2.2.2Neighbor Brief InformationArea: 0.0.0.0        Router ID       Address         Pri Dead-Time  State             Interface1.1.1.1         10.1.1.1        1   18         2-Way/ -          GE0/1Area: 0.0.0.1        Router ID       Address         Pri Dead-Time  State             Interface4.4.4.4         10.3.3.4        1   38         Full/DR           GE0/0
[R2]

故障五

故障现象

PC6和PC7无法ping通互联网的IP地址

故障分析

PC6和PC7没有配置IP地址和网关等信息

在R1上并没有配置默认路由连接互联网,从而也没有引入到OSPF中。所以PC无法通过网关访问到互联网

[R1]display ip routing-table Destinations : 24       Routes : 24Destination/Mask   Proto   Pre Cost        NextHop         Interface
0.0.0.0/32         Direct  0   0           127.0.0.1       InLoop0
1.1.1.1/32         Direct  0   0           127.0.0.1       InLoop0
2.2.2.2/32         O_INTRA 10  1           10.1.1.2        GE0/1
3.3.3.3/32         O_INTRA 10  1           10.2.2.3        GE0/0
4.4.4.4/32         O_INTER 10  2           10.1.1.2        GE0/1
10.1.1.0/24        Direct  0   0           10.1.1.1        GE0/1
10.1.1.1/32        Direct  0   0           127.0.0.1       InLoop0
10.1.1.255/32      Direct  0   0           10.1.1.1        GE0/1
10.2.2.0/24        Direct  0   0           10.2.2.1        GE0/0
10.2.2.1/32        Direct  0   0           127.0.0.1       InLoop0
10.2.2.255/32      Direct  0   0           10.2.2.1        GE0/0
10.3.3.0/24        O_INTER 10  2           10.1.1.2        GE0/1
10.4.4.0/24        O_INTRA 10  2           10.2.2.3        GE0/0
127.0.0.0/8        Direct  0   0           127.0.0.1       InLoop0
127.0.0.1/32       Direct  0   0           127.0.0.1       InLoop0
127.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
192.168.1.0/24     O_INTRA 10  2           10.2.2.3        GE0/0
192.168.2.0/24     O_INTER 10  3           10.1.1.2        GE0/1
202.1.1.0/24       Direct  0   0           202.1.1.1       GE0/2
202.1.1.1/32       Direct  0   0           127.0.0.1       InLoop0
202.1.1.255/32     Direct  0   0           202.1.1.1       GE0/2
224.0.0.0/4        Direct  0   0           0.0.0.0         NULL0
224.0.0.0/24       Direct  0   0           0.0.0.0         NULL0
255.255.255.255/32 Direct  0   0           127.0.0.1       InLoop0
[R1]

故障解决

在R3和R4这两个网关路由器上配置为dhcp服务器为PC6和PC7分发IP地址

[R3]dhcp enable 
[R3]dhcp server ip-pool 1 
[R3-dhcp-pool-1]network 192.168.1.0 mask 255.255.255.0
[R3-dhcp-pool-1]gateway-list 192.168.1.254
[R3-dhcp-pool-1]dns-list 8.8.8.8
[R3]dhcp server forbidden-ip 192.168.1.10 192.168.1.253[R4]dhcp server ip-pool 1 
[R4-dhcp-pool-1]network 192.168.2.0  mask 255.255.255.0
[R4-dhcp-pool-1]gateway-list 192.168.2.254 
[R4-dhcp-pool-1]dns-list 8.8.8.8
[R4-dhcp-pool-1]qu
[R4]dhcp server forbidden-ip 192.168.2.10 192.168.2.253

在R1上配置默认路由并引入到OSPF中

[R1]ip route-static 0.0.0.0 0 202.1.1.5 
[R1]ospf 1 router-id 1.1.1.1       
[R1-ospf-1]default-route-advertise 

PC6ping通互联网

<H3C>ping 100.1.1.1
Ping 100.1.1.1 (100.1.1.1): 56 data bytes, press CTRL_C to break
56 bytes from 100.1.1.1: icmp_seq=0 ttl=253 time=3.863 ms
56 bytes from 100.1.1.1: icmp_seq=1 ttl=253 time=2.676 ms
56 bytes from 100.1.1.1: icmp_seq=2 ttl=253 time=1.560 ms
56 bytes from 100.1.1.1: icmp_seq=3 ttl=253 time=2.423 ms
56 bytes from 100.1.1.1: icmp_seq=4 ttl=253 time=4.946 ms

PC7无法ping通互联网

故障六

故障现象

PC7无法ping通互联网

故障分析

在R1上配置的easy ip中,nat outbound 2000,acl 2000这个访问控制列表中,未运行PC7的业务网段流量通过。

[R1]acl number  2000
[R1-acl-ipv4-basic-2000]di th
#
acl basic 2000rule 0 permit source 192.168.1.0 0.0.0.255
#
return
[R1-acl-ipv4-basic-2000]

故障解决

在acl 2000中将PC7的业务网段流量放行

[R1]acl number  2000
[R1-acl-ipv4-basic-2000]rule permit source 192.168.2.0 0.0.0.255

PC7成功ping通


<H3C>ping 100.1.1.1
Ping 100.1.1.1 (100.1.1.1): 56 data bytes, press CTRL_C to break
56 bytes from 100.1.1.1: icmp_seq=0 ttl=252 time=7.689 ms
56 bytes from 100.1.1.1: icmp_seq=1 ttl=252 time=5.409 ms
56 bytes from 100.1.1.1: icmp_seq=2 ttl=252 time=6.204 ms
56 bytes from 100.1.1.1: icmp_seq=3 ttl=252 time=5.938 ms
56 bytes from 100.1.1.1: icmp_seq=4 ttl=252 time=5.104 ms--- Ping statistics for 100.1.1.1 ---
5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss
round-trip min/avg/max/std-dev = 5.104/6.069/7.689/0.897 ms
<H3C>%Jan 31 11:35:37:680 2024 H3C PING/6/PING_STATISTICS: Ping statistics for 100.1.1.1: 5 packet(s) transmitted, 5 packet(s) received, 0.0% packet loss, round-trip min/avg/max/std-dev = 5.104/6.069/7.689/0.897 ms.

故障七

故障现象

通过对网关连接PC的链路抓包发现,网关仍然在不停的向PC发送OSPFhello包。

故障分析

并未对该链路接口进行静默接口配置

故障解决

对R3和R4连接PC的接口进行静默接口配置

[R3]ospf 1 router-id 3.3.3.3
[R3-ospf-1]silent-interface g0/2[R4]ospf 1 router-id 4.4.4.4
[R4-ospf-1]silent-interface GigabitEthernet 0/2

相关文章:

OSPF排错

目录 实验拓扑图 实验要求 实验排错 故障一 故障现象 故障分析 故障解决 故障二 故障现象 故障分析 故障解决 故障三 故障现象 故障分析 故障解决 故障四 故障现象 故障分析 故障解决 故障五 故障现象 故障分析 故障解决 故障六 故障现象 故障分析 …...

day07-CSS高级

01-定位 作用&#xff1a;灵活的改变盒子在网页中的位置 实现&#xff1a; 1.定位模式&#xff1a;position 2.边偏移&#xff1a;设置盒子的位置 left right top bottom 相对定位 position: relative 特点&#xff1a; 不脱标&#xff0c;占用自己原来位置 显示模…...

05 MP之ActiveRecord模式+SimpleQuery

1. ActiveRecord ActiveRecord(活动记录&#xff0c;简称AR)&#xff0c;是一种领域模型模式&#xff0c;特点是一个模型类对应关系型数据库中的一个表&#xff0c;而模型类的一个实例对应表中的一行记录。 其目标是通过围绕一个数据对象, 进行全部的CRUD操作。 1.1 让实体类…...

git diff查看比对两次不同时间点提交的异同

git diff查看比对两次不同时间点提交的异同 用 git diff命令&#xff1a; git diff commit-id-1 commit-id-2 不同commit-id在不同的时间点提交产生&#xff0c;因为也可以认为git diff是比对两个不同时间点的代码异同。 git diff比较不同commit版本的代码文件异同_git diff c…...

基于muduo网络库开发服务器程序和CMake构建项目 笔记

跟着施磊老师做C项目&#xff0c;施磊老师_腾讯课堂 (qq.com) 一、基于muduo网络库开发服务器程序 组合TcpServer对象创建EventLoop事件循环对象的指针明确TcpServer构造函数需要什么参数,输出ChatServer的构造函数在当前服务器类的构造函数当中,注册处理连接的回调函数和处理…...

前端支持下载模板、导入数据、导出数据(excel格式)

前言 xlsx是由SheetJS开发的一个处理excel文件的npm库,适用于前端开发者实现下载模板、导入导出excel文件等需求&#xff0c;演示的项目的技术栈为vue3 elementPlus 一. 引入xlsx 安装xlsx npm install xlsx引入xlsx import * as XLSX from xlsx;二. 下载模板 const han…...

编译Faiss-gpu【InterMKL】C++ 按步骤操作 基本不会有问题的 python原理相同。

编译Faiss-gpu C++ 基本介绍 使用Faiss版本【1.7.4】 该项目依赖于BLAS 组件 OpenBLAS 和 IntelMKL BLAS 【官方支持】 IntelMKL 会比 OpenBLAS 快的多。 【来自官方结论】 本机环境 Cuda :11.1 Cuda-Driver: 515 InterMKL: 2021.2.0 Faiss :1.7.4 注意:faiss仅…...

conn.execute的用法详解

conn.execute的用法详解 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;我们将深入研究数据库连接中conn.execute的用法&#xff0c;解析它的功能、…...

GetBuffer() 与 ReleaseBuffer() 使用详解

GetBuffer() 与 ReleaseBuffer() 使用详解 大家好&#xff0c;我是免费搭建查券返利机器人赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天&#xff0c;我们将深入研究在编程中常用的GetBuffer()与ReleaseBuff…...

Flink CEP(基本概念)

Flink CEP 在Flink的学习过程中&#xff0c;我们已经掌握了从基本原理和核心层的DataStream API到底层的处理函数&#xff0c;再到应用层的Table API和SQL的各种手段&#xff0c;可以应对实际应用开发的各种需求。然而&#xff0c;在实际应用中&#xff0c;还有一类更为复…...

[AIGC] Spring Gateway与 nacos 简介

文章目录 Spring Gateway简介主要特性优点总结 Nacos简介主要特性优点总结 Spring Gateway 简介 Spring Gateway是一个基于Spring Framework的工具&#xff0c;用于构建和管理微服务架构中的网关。它提供了一种简单而灵活的方式来路由和过滤请求&#xff0c;以及在微服务之间…...

2024-2-3-复习作业

1> 要求&#xff1a; 效果图&#xff1a; 2> 要求&#xff1a; 效果图&#xff1a; 3> 要求&#xff1a; 效果图&#xff1a; 源代码&#xff1a; #include <stdio.h> #include <stdlib.h> typedef int datatype; typedef struct Node {datatype data…...

【如何快速上手Vue.js框架——详细介绍】

如何快速上手Vue.js框架——详细介绍 1. 介绍2. 理解Vue.js的核心概念3. 搭建开发环境4. 创建第一个项目5. 学习基础6. 进阶概念7. 最佳实践和模式8. 构建和部署9. 持续学习10. 实际操作 1. 介绍 要快速上手Vue.js框架&#xff0c;可以按照以下步骤进行学习和实践&#xff1a;…...

1Panel应用推荐:青龙定时任务管理平台

1Panel&#xff08;github.com/1Panel-dev/1Panel&#xff09;是一款现代化、开源的Linux服务器运维管理面板&#xff0c;它致力于通过开源的方式&#xff0c;帮助用户简化建站与运维管理流程。为了方便广大用户快捷安装部署相关软件应用&#xff0c;1Panel特别开通应用商店&am…...

BUUCTF-Real-[struts2]s2-013

struts2的标签中 <s:a> 和 <s:url> 都有一个 includeParams 属性&#xff0c;可以设置成如下值none - URL中不包含任何参数&#xff08;默认&#xff09; get - 仅包含URL中的GET参数 all - 在URL中包含GET和POST参数 当includeParamsall的时候&#xff0c;会将本次…...

【实战知识】使用Github Action + Nginx实现自动化部署

大家好啊,我是独立开发豆小匠。 先说一下背景~ 我的小程序:豆流便签,目前使用云托管部署后端服务,使用轻量级服务器部署数据库和一些中间件。 因此服务器成本:云托管 + 云服务器 云托管每周花费5元,一个月就是50,一年就是500啊,所以这期准备把云托管优化掉! 1. 需…...

web前端--------渐变和过渡

线性渐变&#xff0c;是指颜色沿一条直线进行渐变&#xff0c;例如从上到下、从左到右。 当然&#xff0c;CSS中也支持使用角度来设置渐变的方向&#xff0c;角度单位为deg。 0deg&#xff0c;为12点钟方向&#xff0c;表示从下到上渐变。 90deg&#xff0c;为3点钟方向&…...

docker镜像结构

# 基础镜像 FROM openjdk:11.0-jre-buster # 设定时区 ENV TZAsia/Shanghai RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone # 拷贝jar包 COPY docker-demo.jar /app.jar # 入口 ENTRYPOINT ["java", "-jar"…...

一个 WPF + MudBlazor 的项目模板(附:多项目模板制作方法)

最近做了几个 WPF MudBlazor 的小东西&#xff0c;每次从头搭建环境比较繁琐&#xff0c;然鹅搭建过程还没啥技术含量&#xff0c;索性就直接做了个模板&#xff0c;方便以后使用。 1. 介绍 一个用来创建 .NET 8 WPF MudBlazor 的项目模板 适用于 VS2022 用法&#xff1a;…...

【数据结构与算法】之排序系列-20240203

这里写目录标题 一、628. 三个数的最大乘积二、645. 错误的集合三、747. 至少是其他数字两倍的最大数四、905. 按奇偶排序数组五、922. 按奇偶排序数组 II六、976. 三角形的最大周长 一、628. 三个数的最大乘积 简单 给你一个整型数组 nums &#xff0c;在数组中找出由三个数组…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

【杂谈】-递归进化:人工智能的自我改进与监管挑战

递归进化&#xff1a;人工智能的自我改进与监管挑战 文章目录 递归进化&#xff1a;人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管&#xff1f;3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中&#xff0c;我们可能会遇到一些流式数据处理的场景&#xff0c;比如接收来自上游接口的 Server-Sent Events&#xff08;SSE&#xff09; 或 流式 JSON 内容&#xff0c;并将其原样中转给前端页面或客户端。这种情况下&#xff0c;传统的 RestTemplate 缓存机制会…...

为什么需要建设工程项目管理?工程项目管理有哪些亮点功能?

在建筑行业&#xff0c;项目管理的重要性不言而喻。随着工程规模的扩大、技术复杂度的提升&#xff0c;传统的管理模式已经难以满足现代工程的需求。过去&#xff0c;许多企业依赖手工记录、口头沟通和分散的信息管理&#xff0c;导致效率低下、成本失控、风险频发。例如&#…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...