代码之家  ›  专栏  ›  技术社区  ›  MistyD Harish Kumar Kailas

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

  •  0
  • MistyD Harish Kumar Kailas  · 技术社区  · 6 年前

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

    1 回复  |  直到 6 年前
        1
  •  0
  •   MatPag    6 年前

    最好的方法是为正确的环境替换字符串。你可以把下面的作品加到你的作品里 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个构建变体(您可以在androidstudio的左下面板上更改构建变体)。根据您选择的构建变体,您将拥有 BASE_WEB_URL

    BuildConfig.BASE_WEB_URL