解决Android Studio Loading Devices问题

2024-04-08 08:52

本文主要是介绍解决Android Studio Loading Devices问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、解决办法(普通):

二、解决办法的优化

三、解决办法的进一步优化


问题:windows 11 电脑,每次开机,打开Android Studio,都会显示Loading Devices,连接不上设备。

原因:adb的端口被其他进程占用了。

目的:希望Android Studio 能够连接上手机设备。

一、解决办法(普通):

1、打开CMD命令行

2、在命令行中执行如下命令

第一步:找到占用5037端口的进程

netstat -aon|findstr "5037"

第二步:杀掉占用端口的进程

taskkill /pid {进程ID} /f

比如:taskkill /pid 6272 /f

第三步:启动adb

adb start-server

二、解决办法的优化

对【 一、 解决办法(普通)】进行包装,写成.java文件,执行java文件就很快了,提高工作效率。

问题:每天都要执行【 一、 解决办法(普通)】的流程,很耗时

目的:希望能执行一个.java文件,java文件封装了上述命令流程。

java代码如下:

import java.io.*;/***netstat -aon|findstr "5037"taskkill /pid 30312 /fadb start-server*/
public class CmdLoadingDevices {public static void main(String[] args) {try {ProcessBuilder processBuilder = new ProcessBuilder("cmd.exe", "/c", "netstat -aon|findstr \"5037\"");processBuilder.redirectErrorStream(true);Process process = processBuilder.start();InputStream inputStream = process.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "GBK")); String line;while ((line = reader.readLine()) != null) {System.out.println("PJ11 :"+line);if(line.contains(":5037")){String[]arr =  line.split(" ");int length = arr.length;System.out.println("PJ22 :"+arr[length-1]);String processIdOfOccupyPort = arr[length-1];String cmdKill = "taskkill /pid "+processIdOfOccupyPort+" /f";ProcessBuilder processBuilderKill = new ProcessBuilder("cmd.exe", "/c", cmdKill);processBuilderKill.redirectErrorStream(true);Process processKill = processBuilderKill.start();processKill.waitFor();String cmdStartServer = "adb start-server";ProcessBuilder processBuilderStartServer = new ProcessBuilder("cmd.exe", "/c", cmdStartServer);processBuilderStartServer.redirectErrorStream(true); Process processStartServer = processBuilderStartServer.start();int exitCode = processStartServer.waitFor();if (exitCode != 0){System.out.println("PJ22 :错误");} else {System.out.println("完成");}break;}}process.waitFor();} catch (IOException | InterruptedException e) {e.printStackTrace();}}
}

使用:

1、将上述CmdLoadingDevices.java 文件编译成CmdLoadingDevices.class文件。

javac -encoding UTF-8 D:\PJ\Private\javaJar\CmdLoadingDevices.java

2、执行文件

java CmdLoadingDevices

3、执行完成,Android Studio连接上了设备,OK。

4、整体使用命令行

5、完成。

三、解决办法的进一步优化

对【 二、 解决办法的优化】的包装,打成jar包,执行jar包就更快了,提高工作效率。

使用说明:

1、执行java -jar CmdLoadingDevices.jar

2、若是命令行输出:错误,则需要重新执行底1步;

若是命令行输出:完成,则OK。

具体生成jar包的步骤如下:

1、编译java文件

javac -encoding UTF-8 D:\PJ\Private\javaJar\CmdLoadingDevices.java

2、执行

jar -cvf CmdLoadingDevices.jar CmdLoadingDevices.class

3、执行java -jar CmdLoadingDevices.jar ,报错:没有主清单属性

a、重命名,将CmdLoadingDevices.jar重命名为CmdLoadingDevices.zip

b、解压CmdLoadingDevices.zip为CmdLoadingDevices文件夹

c、打开CmdLoadingDevices文件夹,用记事本打开文件MANIFEST.MF

d、在文件MANIFEST.MF中添加

Main-Class: CmdLoadingDevices

整个文件内容如下:

Manifest-Version: 1.0
Created-By: 11.0.19 (Amazon.com Inc.)
Main-Class: CmdLoadingDevices

对文件MANIFEST.MF的修改点:

在第三行的位置写入 Main-Class: CmdLoadingDevices (注意冒号后面有一个空格,整个文件最后有一行空行),保存。

4、将CmdLoadingDevices文件夹重新打成zip压缩包(CmdLoadingDevices.zip)

5、重命名,将CmdLoadingDevices.zip重命名为CmdLoadingDevices.jar

6、执行java -jar CmdLoadingDevices.jar

7、若是命令行输出:错误,则需要重新执行底6步;

若是命令行输出:完成,则OK。

8、完成。

附件(页面顶部的资源下载):jar包Jar包链接

这篇关于解决Android Studio Loading Devices问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/885123

相关文章

SQL Server配置管理器无法打开的四种解决方法

《SQLServer配置管理器无法打开的四种解决方法》本文总结了SQLServer配置管理器无法打开的四种解决方法,文中通过图文示例介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录方法一:桌面图标进入方法二:运行窗口进入检查版本号对照表php方法三:查找文件路径方法四:检查 S

怎样通过分析GC日志来定位Java进程的内存问题

《怎样通过分析GC日志来定位Java进程的内存问题》:本文主要介绍怎样通过分析GC日志来定位Java进程的内存问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、GC 日志基础配置1. 启用详细 GC 日志2. 不同收集器的日志格式二、关键指标与分析维度1.

Java 线程安全与 volatile与单例模式问题及解决方案

《Java线程安全与volatile与单例模式问题及解决方案》文章主要讲解线程安全问题的五个成因(调度随机、变量修改、非原子操作、内存可见性、指令重排序)及解决方案,强调使用volatile关键字... 目录什么是线程安全线程安全问题的产生与解决方案线程的调度是随机的多个线程对同一个变量进行修改线程的修改操

Redis出现中文乱码的问题及解决

《Redis出现中文乱码的问题及解决》:本文主要介绍Redis出现中文乱码的问题及解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1. 问题的产生2China编程. 问题的解决redihttp://www.chinasem.cns数据进制问题的解决中文乱码问题解决总结

Visual Studio 2022 编译C++20代码的图文步骤

《VisualStudio2022编译C++20代码的图文步骤》在VisualStudio中启用C++20import功能,需设置语言标准为ISOC++20,开启扫描源查找模块依赖及实验性标... 默认创建Visual Studio桌面控制台项目代码包含C++20的import方法。右键项目的属性:

全面解析MySQL索引长度限制问题与解决方案

《全面解析MySQL索引长度限制问题与解决方案》MySQL对索引长度设限是为了保持高效的数据检索性能,这个限制不是MySQL的缺陷,而是数据库设计中的权衡结果,下面我们就来看看如何解决这一问题吧... 目录引言:为什么会有索引键长度问题?一、问题根源深度解析mysql索引长度限制原理实际场景示例二、五大解决

Springboot如何正确使用AOP问题

《Springboot如何正确使用AOP问题》:本文主要介绍Springboot如何正确使用AOP问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录​一、AOP概念二、切点表达式​execution表达式案例三、AOP通知四、springboot中使用AOP导出

Python中Tensorflow无法调用GPU问题的解决方法

《Python中Tensorflow无法调用GPU问题的解决方法》文章详解如何解决TensorFlow在Windows无法识别GPU的问题,需降级至2.10版本,安装匹配CUDA11.2和cuDNN... 当用以下代码查看GPU数量时,gpuspython返回的是一个空列表,说明tensorflow没有找到

解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题

《解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘问题》:本文主要介绍解决未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4... 目录未解析的依赖项:‘net.sf.json-lib:json-lib:jar:2.4‘打开pom.XM

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复