首页 > 解决方案 > 改造 2 不适用于 android 10 (api 29)

问题描述

我编写了一些改造代码并在 API 29 模拟器上运行,但它不起作用。没有任何错误或任何日志消息。但它在我的 android 手机 (android 8) 和 API 27 模拟器上运行良好。我搜索了所有网络,但没有找到任何东西。你能弄清楚为什么会这样吗这是我改造部分的代码:

 override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    val client = OkHttpClient.Builder()
        .build()

    val retrofit : Retrofit = Retrofit.Builder()
        .baseUrl("https://www.flickr.com/")
        .addConverterFactory(ScalarsConverterFactory.create())
        .client(client)
        .build()
    val flickrApi = retrofit.create(FlickrApi::class.java)
    val flickrHomePageRequest = flickrApi.fetchContents()



    flickrHomePageRequest.enqueue(object : Callback<String> {
        override fun onResponse(call: Call<String>, response: Response<String>) {
            Log.d(TAG,"Response received ${response.body()}")
        }

        override fun onFailure(call: Call<String>, t: Throwable) {
            Log.d(TAG,"Failed to fetch photos",t)

        }

    })
    
}

我还尝试了网络安全配置和明文流量,但都没有奏效。

这是我的 xml 代码:

<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">flickr.com</domain>
    </domain-config>
</network-security-config>

最后这是我的改造 api 接口

interface FlickrApi {

    @GET("/")
    fun fetchContents():Call<String>
}

标签: androidretrofit

解决方案


将以下代码添加到您的清单中:

<application
    ...
      android:usesCleartextTraffic="true"
      android:networkSecurityConfig="@xml/network_security_config"
    ...
</application>

推荐阅读