bugfix> android > 投稿

react-native 0.55.4以降にプロジェクトを作成しましたが、現在は最新バージョン(0.59.2)にアップグレードする予定です。 iOS を使用  更新しました。残念ながら、Androidのアップグレードに失敗しました。 Android には多くの変更が必要なようです 。ザ・ gradle  正常に同期し、正常にビルドしますが、 react-native run-android と入力すると 。アプリケーションがモバイルまたはエミュレーターにインストールされると、「開発サーバーに接続できませんでした」と表示されます。

ここで私が変更したもの: gradle-wrapper.properties -distributionUrl = https://services.gradle.org/distributions/gradle -4.10.1-all.zip

build.gradle -依存関係{classpath 'com.android.tools.build:gradle:3.3.1'} -ビルドツールのバージョンは28.0.3です

app/build.gradle

packagingOptions {
  pickFirst 'lib/x86/libc++_shared.so'
  pickFirst 'lib/arm64-v8a/libc++_shared.so'
  pickFirst 'lib/x86_64/libc++_shared.so'
  pickFirst 'lib/armeabi-v7a/libc++_shared.so'
  pickFirst 'lib/arm64-v8a/libc++_shared.so'
}
splits {
  abi {
    reset()
        enable enableSeparateBuildPerCPUArchitecture
        universalApk false // If true, also generate a universal APK
        include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
  }
}

また、metro.config.jsおよびbabel.config.jsをrn 0.59.2に従って更新します

古い環境  「反応」:「16.3.1」、 「react-native」:「0.55.4」、 新しい環境 「反応」:「16.8.3」、 「react-native」:「0.59.2」、

Androidで何かを見逃したと思った。修正してください。

更新された回答。

AndroidManifest.xmlに移動してから追加

android:usesCleartextTraffic="true"

アプリケーションタグ内。すべてが仕事です。 usesCleartextTrafficとはどういう意味ですか?

回答 1 件
  • httpリクエストを受け入れる(通常は暗号化されていないテキスト)。 Android 9.0(API 28)以降、HTTPリクエストはデフォルトで禁止されています。セキュリティ上の理由からHTTPSを使用するようにリクエストされています。デフォルトでは、このプロパティを「true」に設定できます。

    RNはリクエストをdevサーバーに送信するため、このプロパティを「true」に設定してチェックを回避できます。

    また、ターゲットSDKを28未満に設定するか、設定ファイルを追加してドメインを含めることもできます。

あなたの答え