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

如何让Android Studio生成的APK在真实设备连接本地localhost服务器?

Android真实设备无法连接Xampp本地服务器的解决方案

问题背景

使用Xampp和localhost开发的Android登录注册应用,在模拟器上可正常运行,但安装APK到真实设备后无法连接服务器,已尝试用IPv4地址适配模拟器,但真实设备仍无法连接。


核心排查与修复步骤

1. 确保设备处于同一局域网

  • 真实手机必须和运行Xampp的电脑连接同一个WiFi/局域网,否则无法访问电脑的IPv4地址。

2. 开放Xampp Apache的局域网访问权限

  • 打开Xampp安装目录下的apache/conf/httpd.conf文件
  • 找到Require local这一行,修改为Require all granted,允许局域网内所有设备访问
  • 重启Xampp的Apache服务

3. 关闭电脑防火墙(或添加规则)

  • 电脑防火墙会拦截外部设备的请求,临时关闭防火墙测试,或者给Apache添加入站允许规则

4. 修复PHP登录代码的致命逻辑错误

你的登录代码存在密码验证逻辑错误:对输入密码进行哈希后直接查询数据库,这会导致永远无法匹配数据库中存储的哈希密码。

修正后的login.php代码:

<?php
require_once 'connection.php';

if($_SERVER['REQUEST_METHOD'] == 'POST'){
    if(isset($_POST['email']) && isset($_POST['password'])){
        $email = mysqli_real_escape_string($conn, $_POST['email']);
        $inputPassword = $_POST['password'];

        $sql = "SELECT * FROM users WHERE email = '$email'";
        $response = mysqli_query($conn, $sql);
        $result = array();
        $result['login'] = array();

        if(mysqli_num_rows($response) === 1){
            $row = mysqli_fetch_assoc($response);
            // 用password_verify验证输入密码与数据库哈希是否匹配
            if(password_verify($inputPassword, $row['password'])){
                $index['id'] = $row['id'];
                $index['email'] = $row['email'];

                array_push($result['login'], $index);
                $result["success"] = "1";
                $result["message"] = "Giriş Başarılı";
            } else {
                $result["success"] = "0";
                $result["message"] = "Parola hatalı";
            }
            echo json_encode($result);
        } else {
            $result["success"] = "0";
            $result["message"] = "Kullanıcı bulunamadı";
            echo json_encode($result);
        }

        mysqli_close($conn);
    } else {
        echo json_encode(array("success" => "0", "message" => "Email ve şifre eksik"));
    }
}
?>

5. 确认Android代码中的IP地址有效性

  • 检查url_login中的192.168.0.8是否为电脑当前的IPv4地址(可通过ipconfig/ifconfig命令查询,IP地址可能随网络变动)
  • 用手机浏览器访问http://192.168.0.8/biletoss/login.php,如果能正常打开页面,说明服务器配置无问题

6. 适配Android 9+的明文HTTP限制

Android 9及以上系统默认禁止明文HTTP请求,需在AndroidManifest.xml中添加配置:

<application
    ...
    android:usesCleartextTraffic="true">
    ...
</application>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 09:33:12