如何解决在物理 Android 设备上运行 Flutter 应用时的连接问题?

问题描述 投票:0回答:1

我开发了一个带有 Go 后端的 Flutter 应用程序,在使用模拟器时可以按预期运行。但是,当我尝试在物理 Android 设备上运行它时遇到问题。具体来说,应用程序无法使用代码中指定的IP地址连接到后端服务器。

应用程序的预期行为是连接到后端服务器并成功执行 API 调用,就像在模拟器中一样。不幸的是,当我尝试直接在手机浏览器上访问“http://1##.###.#.#:8080”时,无法建立连接。这让我怀疑可能存在网络配置或权限问题,导致应用程序在物理设备上运行时无法与我的后端通信。

代码:

以下是我的 Flutter 项目的相关片段:

class AppConstants{
  static const String BASE_URL = "http://1##.###.#.#:8080";
}

以及

AndroidManifest.xml
中网络相关的配置:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.flutter_golang_yt">
   <application
        android:label="Todogo"
        android:icon="@mipmap/ic_launcher">
        <activity
            android:name=".MainActivity"
            android:exported="true"
            android:theme="@style/LaunchTheme"
            android:hardwareAccelerated="true"
            android:windowSoftInputMode="adjustResize">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
                <category android:name="android.intent.category.LAUNCHER"/>
            </intent-filter>
        </activity>
    </application>
</manifest>

flutter android-studio go network-programming android-manifest
1个回答
1
投票

也许您应该将后端部署在 Heroku 这样的服务上。在我看来,您的后端在模拟器上运行,因为它能够连接到您计算机上的本地主机。但是,您的物理手机无法连接到本地主机。

© www.soinside.com 2019 - 2024. All rights reserved.