Android模拟器访问本地网络 - 是否可以在不更改代码的情况下将127.0.0.1映射到10.0.2.2?

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

在代码中,我有一些地方字符串127.0.0.1。有没有办法让我告诉Android Emulator所有对127.0.0.1的调用都应该像调用10.0.2.2一样?

android android-emulator
1个回答
0
投票

最好的方法是将String替换为正确的环境。您可以将以下部分添加到app android文件中的build.gradle标签中。

flavorDimensions "version"

productFlavors {
    device {
        buildConfigField "String", "BASE_WEB_URL", "127.0.0.1"
    }
    emulator {
        buildConfigField "String", "BASE_WEB_URL", "10.0.2.2"
    }
}

//comment this block if you want the emulatorRelease build variant (but you probably wont)
variantFilter { variant ->
    def names = variant.flavors*.name
    if (variant.buildType.name == "release" && names.contains("emulator")) {
        // Gradle ignores any variants that satisfy the conditions above.
        setIgnore(true)
    }
}

通过这种方式,您将拥有3种构建变体(您可以在Android Studio的左下方面板上更改构建变体)。根据您选择的构建变体,您将使BASE_WEB_URL正确更新为正确的值。

在您的代码中,您只需要将所有“127.0.0.1”和“10.0.2.2”替换为

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