React Native:错误:升级后找不到符号

Chr*_*nry 5 java android facebook reactjs react-native

嗨,在导入我的React本机项目博览会和升级React之后,我遇到了以下问题。

C:\ Users \ user \ gramic \ android \ app \ src \ main \ java \ com \ shop \ MainApplication.java:5:错误:找不到符号导入com.facebook.react.ReactApplication; ^符号:类ReactApplication位置:包com.facebook.react C:\ Users \ user \ gramic \ android \ app \ src \ main \ java \ com \ shop \ MainApplication.java:13:错误:找不到符号导入com。 facebook.react.ReactNativeHost; ^符号:类ReactNativeHost位置:包com.facebook.react C:\ Users \ user \ gramic \ android \ app \ src \ main \ java \ com \ shop \ MainApplication.java:21:错误:找不到符号公共类MainApplication扩展应用程序实现ReactApplication {^符号:类ReactApplication C:

    package com.shop;

import android.app.Application;

import com.facebook.react.ReactApplication;
import com.oblador.vectoricons.VectorIconsPackage;
import com.corbt.keepawake.KCKeepAwakePackage;
import com.oblador.vectoricons.VectorIconsPackage;
import com.github.yamill.orientation.OrientationPackage;
import com.BV.LinearGradient.LinearGradientPackage;
import com.brentvatne.react.ReactVideoPackage;

import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;

import java.util.Arrays;
import java.util.List;

public class MainApplication extends Application implements ReactApplication {

  private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) {
    @Override
    public boolean getUseDeveloperSupport() {
      return BuildConfig.DEBUG;
    }

    @Override
    protected List<ReactPackage> getPackages() {
      return Arrays.<ReactPackage>asList(
          new MainReactPackage(),
            new VectorIconsPackage(),
            new VectorIconsPackage(),
            new KCKeepAwakePackage(),
            new VectorIconsPackage(),
            new OrientationPackage(),
            new LinearGradientPackage(),
            new ReactVideoPackage()

      );
    }
  };

  @Override
  public ReactNativeHost getReactNativeHost() {
    return mReactNativeHost;
  }

  @Override
  public void onCreate() {
    super.onCreate();
    SoLoader.init(this, /* native exopackage */ false);
  }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*cus 10

首先:使用yarnnpm安装所有依赖项;

第二:使用以下代码链接对iOS和Android本机代码的本机依赖关系;

react-native link
Run Code Online (Sandbox Code Playgroud)

第三:由于您的RN版本与Android的build.gradle版本不同,因此可能会发生此错误。当您创建本机应用程序时,它可能会创建如下所示的android应用程序:

android/app/build.gradle

implementation "com.facebook.react:react-native:+"
Run Code Online (Sandbox Code Playgroud)

因此,检查您的node_modules文件夹,查找react-native文件夹,并查找带有数字的文件夹,该数字是react-native的版本。对我来说是0.58.3然后更新android / app / build.gradle

implementation "com.facebook.react:react-native:0.58.3"
Run Code Online (Sandbox Code Playgroud)

就是全部

  • 必须添加此内容:`实现“ com.facebook.react:react-native:0.58.4”与我的package.json中的版本匹配 (3认同)

小智 6

我在尝试升级 React Native 时也遇到了这些错误。我见过人们通过清理 gradlew 缓存(./gradlew clean在 Android 项目文件夹中)或删除整个.gradle文件夹(也在 Android 项目文件夹中)来解决这些问题。

但这对我不起作用。我的问题出在android/build.gradle文件中。我以前不得不为另一个包添加一个 maven 存储库,并且已经这样做了:

maven {
        // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
        url "$rootDir/../node_modules/react-native/android"

        // The following is NOT the right way
        url "https://maven.google.com"
    }
Run Code Online (Sandbox Code Playgroud)

但是在Android 文档中说每个 Maven 存储库都应该在自己的maven {}块中。

因此,对我有用的解决方案是这样做:

maven {
        // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
        url "$rootDir/../node_modules/react-native/android"
    }

maven {
        url "https://maven.google.com"
    }
Run Code Online (Sandbox Code Playgroud)

希望它会有所帮助,并祝您的反应升级好运!;)


mic*_*456 6

在将我的本机项目与Expo分离后,我也遇到了。

正如我在这里回答的那样:

我的答案

为了解决此问题,我必须:

  1. 在package.js中,我更改了:

    “ react-native”:“ https://github.com/expo/react-native/archive/sdk-29.0.0.tar.gz ”,

    至 :

    “ react-native”:“ ^ 0.57.8”,

  2. 删除node_modules文件

  3. 运行npm install
  4. 从android项目中删除“ .gradle”文件夹并同步项目。