当前位置: 首页 > 知识库问答 >
问题:

为什么升级到科尔多瓦Android8后,我看到::ERR_CLEARTEXT_NOT_PERMITTED错误?

贝阳泽
2023-03-14

升级到Cordova Android 8.0后,我发现尝试连接到http://目标时出现了错误。

为什么会这样,我如何解决这个问题?

共有3个答案

韩照
2023-03-14

这里的Cleartext代表未加密的信息。自Android 9以来,建议应用程序调用HTTPS API以确保没有Ves丢失。

但是,如果我们仍然需要调用HTTP API,我们可以执行以下操作:

平台:Ionic 4

在项目根/资源/android/xml下创建一个名为:network_security_config.xml的文件

添加以下行:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
   <domain-config cleartextTrafficPermitted="true">
     <domain>ip-or-domain-name</domain>
   </domain-config>
</network-security-config>

现在在项目根/config.xml中,更新以下行:

<platform name="android">
    <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application" xmlns:android="http://schemas.android.com/apk/res/android">
        <application android:usesCleartextTraffic="true" />
        <application android:networkSecurityConfig="@xml/network_security_config" />
    </edit-config>
    ... other statements...

现在应该可以了。

沃博裕
2023-03-14

config.xml有两件事需要纠正,所以正确的答案应该是添加xmls: android:

<widget id="com.my.awesomeapp" version="1.0.0" 
xmlns="http://www.w3.org/ns/widgets"
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:cdv="http://cordova.apache.org/ns/1.0">

加上编辑配置以允许:

<platform name="android">
  <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
      <application android:usesCleartextTraffic="true" />
  </edit-config>
</platform>

如果避免了步骤1,则出现错误:unbound prefix。将出现

危晨
2023-03-14

Cordova Android平台中的默认API级别已升级。在Android 9设备上,现在默认情况下禁用明文通信。

要再次允许明文通信,请将应用程序上的android:usesCleartextTraffic标签设置为true:

<platform name="android">
  <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
      <application android:usesCleartextTraffic="true" />
  </edit-config>
</platform>

如注释中所述,如果您之前没有定义androidXML命名空间,您将在构建期间收到一个错误:未绑定前缀。这表明您需要将其添加到同一config.xml中的小部件标记中,如下所示:

<widget id="you-app-id" version="1.2.3"
xmlns="http://www.w3.org/ns/widgets" 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:cdv="http://cordova.apache.org/ns/1.0">
 类似资料:
  • 我正在尝试让相机功能正常工作。我正在连接的三星galaxy平板电脑上进行测试。应用程序成功启动,但导航器。照相机getpicture不会启动相机。你能帮忙吗? 以下是我遵循的步骤:我在(Windows 7)上使用以下步骤创建了cordova hello项目: A部分:(设置cordova)(此处答案的步骤):

  • 我已经安装了最新的构建工具;29.0.2.还是说没有安装构建工具 C:\用户\用户\下载\android-dio-\android-dios\bin\runnerw.exeC:\用户\用户\AppData\漫游\npm\cordova.cmd运行android检查JavaJDK和Android SDK版本ANDROID_SDK_ROOT=未定义(推荐设置)ANDROID_HOME=C:\用户\用户

  • 嗨,我运行ionic命令时出现以下错误()。任何线索都将不胜感激。我的Java是9.0.1,错误消息对我来说没有意义。请提出你的想法。 ANDROID_HOME=C:\程序文件(x86)\Android\android-sdkJAVA_HOME=C:\程序文件\Java\jdk-9.0.1错误:JDK 1.8或更高版本的需求检查失败 [错误]运行科尔多瓦运行Android时出错(退出代码 1)。

  • 我可以从设备上发出GET请求,没有问题。我也可以使用POST登录(接收302 Found响应)。 来自Chrome的请求得到了完美的处理。 我正在使用Spring/Tomcat。我已经在我的tomcat web.xml中添加了CORS过滤器,并且在我的CORDova config.xml中添加了allow-origins*。 科尔多瓦请求 除了来自Chrome的请求中的这些行以外,日志是相同的:

  • 以下是我在检查需求时得到的信息: 以下是我在尝试构建时得到的结果: 我已将ANDROID\u HOME的环境变量设置为C:\Users\Ben\AppData\Local\ANDROID\Sdk,将JAVA\u HOME设置为C:\Program Files\JAVA\jdk-14.0.2,并将添加的C:\Program Files\JAVA\jdk-14.0.2\bin、Sdk工具、Sdk平台工

  • 我试图更新我的网站从使用Laravel 5.4到Laravel 7.3。在大多数情况下,它是有效的,但看起来我的自定义门面由于某种原因不起作用... 无论何时使用一个,我都会得到以下错误。。。 这里是相关文件... 应用\助手\MyLogHelper.php 应用\提供商\MyLogServiceProvider.php App\Facades\MyLog。php 在app.php.... 提供商