React Native 0.60.5下react-native-webview在Android端无法运行问题求助
React Native 0.60.5 Android端WebView应用无法运行?看这里解决
嘿,从你贴的日志里一眼就看到问题核心了——adb: error: cannot bind listener: Operation not permitted,这是ADB反向端口绑定失败导致的,说白了就是Android模拟器没法连上本地的JS开发服务器,所以整个应用的JS代码都加载不出来,更别说WebView了。iOS正常运行也说明你WebView的集成是没问题的,就卡在Android端的端口连接这了。
给你几个亲测有效的解决办法:
1. 重启ADB服务(最常用的解决方式)
ADB有时候会抽风出现权限异常,重启一下基本能搞定:
- 先杀掉当前的ADB进程:
adb kill-server - 然后用管理员权限重启(Mac/Linux加sudo,Windows要打开管理员命令提示符):
sudo adb start-server - 最后重新运行你的应用:
react-native run-android
2. 手动执行端口转发
自动绑定失败的话,咱们手动来指定端口转发:
sudo adb -s emulator-5554 reverse tcp:8081 tcp:8081
执行完之后,要么重新启动应用,要么在模拟器里摇一摇调出开发者菜单,选择「Reload」重新加载即可。
3. 检查模拟器网络状态
有时候模拟器的网络抽风也会导致连不上服务器:
- 打开模拟器的设置,确认Wi-Fi是正常连接状态
- 可以尝试切换一下网络模式(比如切到蜂窝网络再切回Wi-Fi),重置一下网络连接
4. 手动指定开发服务器IP
如果上面的方法都不管用,那就直接把服务器地址换成你电脑的本地IP:
- 先查询自己电脑的内网IP:Mac用
ifconfig,Windows用ipconfig查找对应网段的IP - 在模拟器里摇一摇打开开发者菜单,选择「Dev Settings」
- 找到「Debug server host & port for device」,输入你的IP加8081端口,比如
192.168.3.10:8081 - 回到应用选择「Reload」重新加载
这样应该就能解决问题啦,你的代码本身没毛病,就是Android这边的开发服务器连接出了小状况~
内容的提问来源于stack exchange,提问作者Berry Finn




