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

新手上路,请多包涵

嗨,导入我的 react 原生项目 expo 并升级 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 extends Application 实现 ReactApplication { ^ 符号:类 ReactApplication C:\Users\user\gramic\android\app\src\main\java\com\shop\MainApplication.java:23: 错误:找不到符号 private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { ^ 符号:类 ReactNativeHost 位置:类 MainApplication C:\Users\user\gramic\android\app\src\main\java\com\shop\MainApplication.java:40:错误:找不到符号 public ReactNativeHost getReactNativeHost() { ^ 符号:类 ReactNativeHost 位置:类 MainApplication C:\Users\user\gramic\android\app\src\main\java\com\shop\MainActivity.java:5: 错误:MainActivity 不是抽象的并且确实不覆盖 ReactActivity 公共类 MainActivity 中的抽象方法 getPackages() 扩展 ReactActivity { ^ C:\Users\user \gramic\android\app\src\main\java\com\shop\MainApplication.java:23:错误:找不到符号 private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { ^ 符号:类 ReactNativeHost 位置:类 MainApplication C: \Users\user\gramic\android\app\src\main\java\com\shop\MainApplication.java:39: 错误:方法没有覆盖或实现超类型@Override 的方法 ^

     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);
  }
}

原文由 Chris Henry 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 985
1 个回答

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

第二:使用下面的代码链接iOS和Android原生代码的原生依赖;

 react-native link

第三:这个错误可能是因为你的RN版本与Android的build.gradle版本不同。当您创建一个 react-native 应用程序时,它可能会创建 android 应用程序,例如:

 android/app/build.gradle

implementation "com.facebook.react:react-native:+"

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

 implementation "com.facebook.react:react-native:0.58.3"

这就是全部。

原文由 Marcus 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题