Android物理机无法连接本地SpringBoot服务器与MySQL数据库求助
物理机无法连接本地SpringBoot后端问题
我正在使用Android Studio开发一款密码管理器应用,后端采用SpringBoot,数据库为MySQL。服务器部署在电脑的localhost:8080,数据库部署在localhost:3306。应用在Android Studio模拟器上可正常运行通信,但使用物理智能手机(三星Galaxy A80)连接时失败,尝试在Retrofit配置中修改IP为手机IP并更改端口,仍未解决问题。
SpringBoot application.properties配置
spring.datasource.url=jdbc:mysql://localhost:3306/PasswordManager?createDatabaseIfNotExist=true spring.datasource.username=root spring.datasource.password=SakeSaske77 spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL8Dialect spring.jpa.hibernate.ddl-auto=update
Android Retrofit服务配置
public class RetrofitService { private Retrofit retrofit; public RetrofitService() { initializeRetrofit(); } private void initializeRetrofit() { retrofit = new Retrofit.Builder() .baseUrl("http://192.168.1.185" + ":8080") .addConverterFactory(GsonConverterFactory.create(new Gson())) .build(); } public Retrofit getRetrofit() { return retrofit; } }
排查方向
- 网络环境一致性:确保手机和电脑连接同一WiFi网络,不能跨网段或手机使用移动数据。
- 电脑防火墙拦截:检查电脑防火墙是否放行8080端口,可临时关闭防火墙测试,或手动添加8080端口的入站允许规则。
- SpringBoot绑定地址:默认SpringBoot仅监听localhost,需在
application.properties添加server.address=0.0.0.0,让服务监听所有网卡地址,允许局域网设备访问。 - IP地址正确性:Retrofit配置的IP应为电脑的局域网IP,而非手机IP。可通过电脑命令行执行
ipconfig(Windows)或ifconfig(Mac/Linux)查看WiFi对应的IPv4地址,确认192.168.1.185是否为电脑内网IP。 - Android网络权限:检查
AndroidManifest.xml是否添加必要权限:<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> - 端口占用检查:确认8080端口未被其他程序占用,Windows用
netstat -ano | findstr :8080、Mac/Linux用lsof -i :8080查看,若被占用可修改SpringBoot端口(application.properties添加server.port=8081)。
内容的提问来源于stack exchange,提问作者Lucas Schaffner
相关产品推荐
相关产品推荐

