You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android Studio连接URL及WAMP连MySQL遇FileNotFoundException的解决方法

解决Android Studio连接WAMP PHP文件时的FileNotFoundException问题

首先,先看你抛出的错误日志:

W/System.err: java.io.FileNotFoundException: http://192.168.2.198/login.php
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:250)
at com.example.mysqltest.BackgroundWorker.doInBackground(BackgroundWorker.java:46)
at com.example.mysqltest.BackgroundWorker.doInBackground(BackgroundWorker.java:19)
at android.os.AsyncTask$2.call(AsyncTask.java:304)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:243)
W/System.err: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)
at java.lang.Thread.run(Thread.java:761)

这个异常的核心是你的Android应用无法成功访问到WAMP服务器上的login.php资源,下面是一步步的排查和解决方法:

  • 先确认WAMP服务器和PHP文件的基础可用性

    • 确保WAMP的系统托盘图标是绿色的,这代表Apache和MySQL服务都正常启动了。如果是黄色,说明有服务没启动,先排查Apache的启动问题。
    • 打开电脑本地浏览器,输入http://localhost/login.php或者http://127.0.0.1/login.php,看能不能正常加载这个PHP文件。如果访问失败,说明你的login.php放错了位置——它必须放在WAMP的www根目录下(Windows默认路径是C:\wamp64\www),或者文件名/路径拼写有误,比如大小写问题(虽然Windows不区分,但最好保持一致)。
    • 如果本地能访问,再用电脑浏览器输入你代码里的地址http://192.168.2.198/login.php,如果这里也打不开,说明WAMP没有允许局域网设备访问。
  • 配置WAMP允许局域网访问

    • 右键点击WAMP图标,选择「Put Online」,这个操作会让WAMP开放局域网访问权限。
    • 检查Apache的配置文件:通过WAMP图标→Apache→httpd.conf打开配置文件,找到<Directory "你的www目录路径">的配置段,确保里面的Require all granted(而不是Require local),比如:
      <Directory "c:/wamp64/www/">
          Options Indexes FollowSymLinks MultiViews
          AllowOverride all
          Require all granted
      </Directory>
      
    • 修改完成后,重启Apache服务(WAMP图标→Apache→Restart Service),再用电脑浏览器访问局域网IP的login.php,确认能正常加载。
  • 确保Android设备和电脑在同一局域网

    • 如果用的是真机,要和运行WAMP的电脑连接同一个Wi-Fi;如果是模拟器,确保模拟器的网络是桥接模式(或者默认的NAT模式能访问本地局域网)。
    • 你可以在Android设备的浏览器里输入http://192.168.2.198/login.php,如果访问失败,先确认电脑的局域网IP是否正确:Windows用ipconfig命令、Mac/Linux用ifconfig或ip addr命令查看本机的IPv4地址,确保代码里的IP和这个一致。
  • 检查Android应用的网络权限和明文HTTP限制

    • 打开AndroidManifest.xml,确保已经添加了必要的网络权限:
      <uses-permission android:name="android.permission.INTERNET" />
      <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      
    • 如果你的应用目标SDK版本是28及以上,Android默认禁止明文HTTP请求(你的地址是http而非https),需要配置网络安全策略:
      1. 在res/xml目录下创建network_security_config.xml文件,内容如下:
        <?xml version="1.0" encoding="utf-8"?>
        <network-security-config>
            <domain-config cleartextTrafficPermitted="true">
                <domain includeSubdomains="true">192.168.2.198</domain>
            </domain-config>
        </network-security-config>
        
      2. 在AndroidManifest.xml的<application>标签中添加引用:
        <application
            ...
            android:networkSecurityConfig="@xml/network_security_config">
            ...
        </application>
        
    • 测试环境下也可以直接在<application>标签加android:usesCleartextTraffic="true",但还是推荐上面的域名白名单方式,更安全。
  • 排查代码中的请求逻辑问题

    • 看你错误日志里指向BackgroundWorker.java的第46行,检查这里的请求方式(GET/POST)是否和login.php预期的一致。比如如果PHP代码是处理POST请求,而你用了GET方式发起请求,可能会导致资源无法正确响应,进而触发这个异常。
    • 如果请求带参数,要确保参数已经正确编码,避免因为特殊字符导致URL解析错误。

内容的提问来源于stack exchange,提问作者HARSHA sss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 13:47:30