解决Android Studio Loading Devices问题

news2025/6/21 23:44:00

目录

一、解决办法(普通):

二、解决办法的优化

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


问题: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 /f
 adb 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包链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1584808.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot和Vue2项目配置https协议

1、SpringBoot项目 ① 去你自己的云申请并下载好相关文件,SpringBoot下载的是Tomcat(默认),Vue2下载的是Nginx ② 将下载的压缩包里面的.pfx后缀文件拷贝到项目的resources目录下 ③ 编辑配置文件 (主要是框里面的内…

SOCKS代理是如何提高网络性能和兼容性的?

SOCKS代理作为一种网络协议中间件,不仅在提升网络隐私和安全性方面发挥着重要作用,也在提高网络性能和兼容性方面有着不容忽视的影响🚀。本文将深入探讨SOCKS代理如何通过减少网络延迟🚀、优化数据传输🔄、提高跨平台兼…

MacOS下Qt 5开发环境安装与配置

最近笔者在MacOS中使用Qt Creator开发Qt程序时遇到了一些问题,在网上查了不少资料,都没有找到解决方案,只有自己进行研究摸索了,今天晚上终于将目前遇到的问题全部解决了,特记录下来分享给大家。 笔者使用的是MacOS 1…

政安晨:【深度学习神经网络基础】(六)—— 前馈神经网络

目录 简述 前馈神经网络结构 计算输出 初始化权重 径向基函数神经网络 径向基函数 政安晨的个人主页:政安晨 欢迎 👍点赞✍评论⭐收藏 收录专栏: 政安晨的机器学习笔记 希望政安晨的博客能够对您有所裨益,如有不足之处,欢迎…

“反正你又看不到,少写一行又何妨......”

单链表专题 1.链表的概念及结构2. 实现单链表3. 链表的分类 1.链表的概念及结构 概念:链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的 。 链表的结构跟火车车厢相似,淡季时⻋次的⻋厢…

跨平台桌面应用 Electron 入门学习

本文章主要为该视频的学习笔记,如果侵权会速删。 Electron 01 课程介绍_哔哩哔哩_bilibiliElectron 01 课程介绍, 视频播放量 3046、弹幕量 0、点赞数 75、投硬币枚数 43、收藏人数 179、转发人数 2, 视频作者 极客丶张德龙, 作者简介 当你的能力还不足以撑起自己的…

2024-04-10 Linux gzip 和 gunzip 命令,gzip 压缩的文件通常比原始文件小得多。

一、gzip 是 Linux 系统中用于压缩文件的命令,它通常用于将单个文件压缩成 .gz 格式的文件。gzip 压缩的文件通常比原始文件小得多,因此它在节省磁盘空间和减少文件传输时间方面非常有用。 gzip 命令的基本语法如下: gzip [选项] [文件]复制…

实现自动打包py及替换pyinstaller --add-data参数的方法

2024年了,PyInstaller已经来到了6.5.0版本,可我还是不会用它那个--add-data的方法,度了几圈试了试,始终不(行)如(不)意(通),就是没能把附加文件&a…

Dubbo 序列化

Dubbo 序列化 1、什么是序列化和反序列化 序列化(serialization)在计算机科学的资料处理中,是指将数据结构或对象状态转换成可取用格式(例如存成文件,存于缓冲,或经由网络中发送),…

Redis中的集群(五)

集群 在集群中执行命令 MOVED错误。 当节点发现键所在的槽并非由自己负责处理的时候&#xff0c;节点就会向客户端返回一个MOVED错误&#xff0c;指引客户端转向至正在负责槽的节点&#xff0c;MOVED错误的格式为: MOVED <slot> <ip>:<port>其中slot为键…

软件建模与设计 —— 入门

序言 对于软件建模与设计&#xff0c;非科班出身的同学可能和我一样比较陌生&#xff0c;虽然日常开发中也涉及到建模&#xff0c;但是并没有系统的学习过软件建模设计。类似于设计模式&#xff0c;软件建模与设计也有一套三板斧。 设计模式 创建型模式提供了创建对象的机制…

ZYNQ7000 PL与PS交互总结

这里写目录标题 一、ZYNQ7000整体框架二、AXI总线与接口2.1 AXI总线协议分类2.1.1 AXI_Lite协议2.1.2 AXI_Full协议2.1.3 AXI_Stream协议 2.2 AXI接口分类 三、PS与PL交互方式总结3.1 PL中断3.2 AXI_Lite协议配合AXI GP接口进行寄存器访问3.3 AXI_Full协议配合AXI HP接口进行内…

解决苹果iMac的M1芯片Node Sass does not yet support your current environment的问题

问题背景 如图所示&#xff0c;这是我的电脑&#xff0c;M1芯片 启动前端项目老是报错&#xff0c;说node Sass不支持我当前的环境&#xff0c;同事的macBook是intel芯片的&#xff0c;就能跑起项目来 很烦 但是不慌&#xff01;&#xff01;&#xff01; 咱有解决方法啦&a…

添加okHttp依赖报错

compile "com.squareup.okhttp:okhttp:2.4.0" compile com.squareup.okio:okio:1.5.0 compile "com.google.code.gson:gson:2.8.0" 升级了&#xff0c;改为 implementation "com.squareup.okhttp:okhttp:2.4.0"implementation com.squareup.o…

零基础入行IT行业:AI助力实现梦想

目录 一、前言 二、学习路径&#xff1a;构建你的“AI学习阶梯” 1.基础知识启蒙&#xff08;预期时间&#xff1a;1-2个月&#xff09; 2.技能逐层提升&#xff08;预期时间&#xff1a;3-6个月&#xff09; 3.深化专业方向&#xff08;预期时间&#xff1a;6-12个月&…

浏览器的重排重绘

相关问题 如何提升页面渲染性能如何减少页面重排重绘哪些行为会引起重排/重绘 关键点 渲染性能 Layout Paint 浏览器渲染大致分为四个阶段&#xff0c;其中在解析 HTML 后&#xff0c;会依次进入 Layout 和 Paint 阶段。样式或节点的更改&#xff0c;以及对布局信息的访问等…

Node.js 的 5 个常见服务器漏洞

Node.js 是一个强大且广泛使用的 JavaScript 运行时环境&#xff0c;用于构建服务器端应用程序。然而&#xff0c;与任何其他软件一样&#xff0c;Node.js 也有自己的一些漏洞&#xff0c;如果处理不当&#xff0c;可能会导致安全问题。请注意&#xff0c;这些漏洞并不是 Node.…

【漏洞复现】OpenMetadata 命令执行漏洞复现(CVE-2024-28255)

声明&#xff1a;亲爱的读者&#xff0c;我们诚挚地提醒您&#xff0c;Aniya网络安全的技术文章仅供个人研究学习参考。任何因传播或利用本实验室提供的信息而造成的直接或间接后果及损失&#xff0c;均由使用者自行承担责任。Aniya网络安全及作者对此概不负责。如有侵权&#…

【MySQL数据库 | 第二十六篇】InnoDB基本数据存储单元以及存在问题

前言&#xff1a; InnoDB作为MySQL中最常用的存储引擎之一&#xff0c;承载着许多数据库系统的关键任务&#xff0c;如事务管理、并发控制和数据完整性保障。 然而&#xff0c;就像任何技术一样&#xff0c;InnoDB也并非完美无缺。在深入了解其工作原理和特性的同时&#xff…

宏集PLC如何为楼宇自动化行业提供空调、供暖与通风的解决方案?

一、应用背景 楼宇自动化行业是通过将先进的技术和系统应用于建筑物中&#xff0c;以提高其运营效率、舒适度和能源利用效率的行业&#xff0c;其目标是使建筑物能够自动监控、调节和控制各种设备和系统&#xff0c;包括照明系统、空调系统、安全系统、通风系统、电力供应系统…