尝试在 Android 模拟器上部署 React-Native 项目时,遇到 React Native 自动链接失败

问题描述 投票:0回答:1

这是一个最近构建和部署没有问题的项目,但是在最近导入一些节点模块(领域和@react-native-community/net-info)之后,“npx react-native run-android”的安装过程是始终失败,表明找不到“build/ generated/autolinking/autolinking.json”文件。为了解决这个问题,我首先删除了最新的导入,删除并重新安装了所有节点模块(使用 --force 标志),但错误仍然存在。然后我手动创建了一个空的 autolinking.json 文件来解决这个问题,但现在我收到错误:

“RNGP - 自动链接:在react-native配置输出中找不到project.android.packageName!无法在没有此字段的情况下自动链接包。”

据我所知,packageName 已正确定义,我假设错误是指清单文件。

下面是主要的AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.naturecounter">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
      <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.CAMERA"/>

    <application
      android:name=".MainApplication"
      android:label="@string/app_name"
      android:icon="@mipmap/ic_launcher"
      android:roundIcon="@mipmap/ic_launcher_round"
      android:allowBackup="false"
      android:theme="@style/AppTheme">
      <uses-library android:name="org.apache.http.legacy" android:required="false"/>
      <activity
        android:name=".MainActivity"
        android:label="@string/app_name"
        android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
        android:launchMode="singleTask"
        android:windowSoftInputMode="adjustResize"
        android:exported = "true">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />

        </intent-filter>
      </activity>
      <activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
      <meta-data android:name="com.google.android.geo.API_KEY" android:value="@string/google_maps_key"/>
      <meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/facebook_app_id"/>
      <meta-data android:name="com.facebook.sdk.ClientToken" android:value="@string/facebook_client_token"/>
      <!-- <meta-data android:name="com.google.android.geo.API_KEY" android:value="AIzaSyDQVy5Jju3QBfHWCQJ0RCXoj45VJS-SIys"/> -->
      <activity android:name="com.facebook.FacebookActivity"
        android:configChanges=
                "keyboard|keyboardHidden|screenLayout|screenSize|orientation"
        android:label="@string/app_name" />
      <activity
          android:name="com.facebook.CustomTabActivity"
          android:exported="true">
          <intent-filter>
              <action android:name="android.intent.action.VIEW" />
              <category android:name="android.intent.category.DEFAULT" />
              <category android:name="android.intent.category.BROWSABLE" />
              <data android:scheme="@string/fb_login_protocol_scheme" />
          </intent-filter>
      </activity>
    </application>
</manifest>

是否有用于触发链接的react-native命令?还是我的配置中缺少某些内容?

反应原生 v0.71.14

反应v18.2.0

android Gradle 插件:8.4.1

Gradle 版本:8.7-bin

android react-native gradle-plugin package-name
1个回答
0
投票

该错误发生在 React Native 项目的构建过程中,特别是当自动链接过程失败并显示以下消息时:

RNGP - Autolinking: Could not find project.android.packageName in react-native config output! Could not autolink packages without this field.

发生这种情况是因为 React Native CLI 无法找到正确链接 Android 项目所需的 packageName。

解决方案

  • 第1步:创建或更新react-native.config.js 如果您的项目根目录中还没有react-native.config.js 文件,请创建一个。该文件用于配置 React Native CLI。

     module. Exports = {
     project: {
     android: {
       packageName: 'com.nymvp', // Replace 'com.nymvp' with your actual 
      package name
     },
    },
    };
    

此配置显式定义了 Android 项目的 packageName,React Native CLI 在自动链接过程中使用该名称。

  • 第2步: 删除现有的自动链接 JSON 文件 接下来,删除现有的自动链接 JSON 文件,以确保自动链接过程根据更新的配置生成新文件: 您可以手动将其删除

/项目名称/android/build/ generated/autolinking/autolinking.json

或 通过运行命令:

rm -rf android/build/generated/autolinking/autolinking.json

此文件存储先前自动链接过程的结果,如果 packageName 设置不正确,该结果可能会过时或不正确。

  • 第3步: 清理并重建项目 进行这些更改后,清理并重建项目以应用新配置非常重要:

    cd 安卓 ./gradlew 干净 光盘 .. npx react-native run-android

© www.soinside.com 2019 - 2024. All rights reserved.