Mac端Android Studio连接Neo4j 5.6.0桌面版失败求助
解决Neo4j与Android APP的Bolt连接问题
1. 修正客户端连接地址
你代码中写的是bolt://X.X.X:7687,但报错显示尝试连接localhost:7687,说明实际运行时URI可能未正确生效:
- 将
X.X.X替换为Mac的实际局域网IP(如192.168.xx.xx),不要保留占位符 - 排查代码逻辑,确认URI变量未被其他代码重置为
localhost
2. 确认Neo4j 5.x的正确配置
Neo4j 5.x的配置项前缀已从dbms改为server,需确保修改的是正确配置:
- 打开Neo4j桌面版,找到目标数据库,点击
...>Settings - 确认以下配置项:
server.bolt.enabled=true server.bolt.listen_address=0.0.0.0:7687 server.bolt.advertised_address=你的Mac局域网IP:7687 - 修改完成后重启Neo4j服务,确保服务正常启动
3. 检查Mac防火墙设置
- 打开Mac系统偏好设置 > 安全性与隐私 > 防火墙
- 确认防火墙未阻止Neo4j的7687端口,可临时关闭防火墙测试连接是否恢复
4. 验证网络连通性
- 在Android设备(或模拟器)上,ping你的Mac局域网IP,确认网络可达
- 用telnet测试端口:
telnet 你的MacIP 7687,能连接则说明端口开放正常
5. 适配驱动版本
你使用的org.neo4j.driver.v1是旧版驱动,与Neo4j 5.6.0可能存在兼容性问题:
- 在Android项目的
build.gradle中更新驱动依赖:implementation 'org.neo4j.driver:neo4j-java-driver:5.6.0' - 代码中导入对应版本的类,比如
org.neo4j.driver.Driver而非v1版本的类
6. 模拟器特殊处理
若使用Android模拟器测试:
- 模拟器的
localhost指向自身,需用10.0.2.2代替Mac的localhost,或直接使用Mac的局域网IP
7. 配置Android网络权限
确保AndroidManifest.xml中添加了网络权限:
<uses-permission android:name="android.permission.INTERNET" />
内容的提问来源于stack exchange,提问作者Saretta
相关产品推荐
相关产品推荐

