我收到android8用户的报告说,我的应用程序(使用后端feed)没有显示内容。经过调查,我发现android 8出现了以下异常:
08-29 12:03:11.246 11285-11285/ E/: [12:03:11.245, main]: Exception: IOException java.io.IOException: Cleartext HTTP traffic to * not permitted
at com.android.okhttp.HttpHandler$CleartextURLFilter.checkURLPermitted(HttpHandler.java:115)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:458)
at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:127)
at com.deiw.android.generic.tasks.AbstractHttpAsyncTask.doConnection(AbstractHttpAsyncTask.java:207)
at com.deiw.android.generic.tasks.AbstractHttpAsyncTask.extendedDoInBackground(AbstractHttpAsyncTask.java:102)
at com.deiw.android.generic.tasks.AbstractAsyncTask.doInBackground(AbstractAsyncTask.java:88)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
(我已经删除了包名、url和其他可能的标识符)
在android7和更低版本上,一切正常,我不设置 android:usesCleartextTraffic
在manifest中(并将其设置为 true
没有帮助,这是默认值),我也不使用网络安全信息。如果我打电话 NetworkSecurityPolicy.getInstance().isCleartextTrafficPermitted()
,它返回 false
对于android 8, true
对于旧版本,使用相同的apk文件。我试着在google上找到一些关于androido的信息,但是没有成功。
18条答案
按热度按时间siv3szwd16#
对于本地项目
它已经固定在rn 0.59上。您可以在从0.58.6升级到0.59的diff中找到,您可以在不升级rn版本的情况下应用它,只需执行以下步骤:
创建文件:
android/app/src/debug/res/xml/react\u native\u config.xml-
android/app/src/debug/androidmanifest.xml-
检查已接受的答案以了解根本原因。
7gyucuyw17#
将这些不同的答案应用于
Xamarin.Android
,您可以使用类和程序集级属性,而不是手动编辑AndroidManifest.xml
当然需要互联网许可(duh…):注意:通常程序集级属性会添加到
AssemblyInfo.cs
文件,但任何文件,在using
在上面namespace
作品。然后在应用程序子类(如果需要,创建一个)上,可以添加
NetworkSecurityConfig
引用Resources/xml/ZZZZ.xml
文件:在中创建文件
Resources/xml
文件夹(创建xml
文件夹(如果需要)。例子
xml/network_security_config
文件,根据需要调整(参见其他答案)您也可以使用
UsesCleartextTraffic
上的参数ApplicationAttribute
:0x6upsns18#
而对我来说,有效的答案是@pablocegarra:
您可能会收到有关
cleartextTrafficPermitted="true"
如果你知道要访问的域