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

nbnkbykc  于 2022-11-17  发布在  React
关注(0)|答案(7)|浏览(261)

你好,在导入我的React原生项目博览会和升级React,我一直有以下问题。
C:\用户\用户\gramic\安卓\应用\src\main\java\com\商店\主应用。java:5:错误:无法找到符号导入com.facebook.react.ReactApplication;^符号:类ReactApplication位置:软件包:C:\用户\用户\gramic\android\应用程序\源代码\主\java\com\商店\主应用程序。java:13:错误:无法找到符号导入com.facebook.react.ReactNativeHost;^符号:类ReactNativeHost位置:软件包:C:\用户\用户\gramic\android\应用程序\源代码\主\java\com\商店\主应用程序。java:21:错误:找不到符号公共类MainApplication extends应用程序实现ReactApplication { ^ symbol:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:用户名:错误:无法找到符号专用最终ReactNativeHost mReactNativeHost =新ReactNativeHost(this){ ^ symbol:类ReactNativeHost的位置:类主要应用程序C:\用户\用户\gramic\android\应用程序\src\main\java\com\shop\主要应用程序。java:40:错误:无法找到符号公共ReactNativeHost getReactNativeHost(){ ^符号:类ReactNativeHost的位置:类主要应用程序C:\用户\用户\gramic\android\应用程序\src\main\java\com\shop\主要活动。java:5:错误:MainActivity不是抽象的,并且不会覆盖ReactActivity公共类中的抽象方法getPackages()。MainActivity扩展了ReactActivity { ^ C:\Users\user\gramic\android\app\src\main\java\com\shop\MainApplication.java:23:错误:无法找到符号专用最终ReactNativeHost mReactNativeHost =新ReactNativeHost(this){ ^ symbol:类ReactNativeHost的位置:类主要应用程序C:\用户\用户\gramic\android\app\src\main\java\com\shop\主要应用程序。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);
  }
}
sgtfey8w

sgtfey8w1#

首先:使用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"

这就是全部。

vuktfyat

vuktfyat2#

我在尝试升级React Native时也遇到了这些错误。我看到人们通过清理Gradlew缓存(Android项目文件夹中的./gradlew clean)或删除整个.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"
    }

但是在Android docs中规定每个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"
    }

希望它会有帮助,并祝你的React升级好运!)

dojqjjoe

dojqjjoe3#

在我从世博会中分离出我的原生态项目后,我也发生了同样的事情。
正如我在这里回答的:
我的回答
为了解决这个问题,我必须:
1.在package.js中,我更改了:
“React Native ”:“https://github.com/expo/react-native/archive/sdk-29.0.0.tar.gz“,
至:
“React Native ”:“^0.57.8”,
1.删除node_modules文件
1.运行npm安装
1.从Android项目中删除'.gradle'文件夹并同步项目。

ktca8awb

ktca8awb4#

我有一个类似的问题,我发现所有的建议都没有帮助,所以我放弃了这个问题,因为其他人也有同样的问题。
对我来说,它是一个第三方包(pushwoosh-react-native-plugin),在它的build.gradle文件中编译/实现了静态版本的react-native。
我设法找到了它,由

  • 转到我的应用程序/build.gradle
  • 注解掉依赖项上的所有编译/实现
  • 我把它们一个一个地加起来,直到我得到同样的错误

正如上面所说:原来是定义了以下依赖项的pushwoosh build.gradle文件:

dependencies {
    ...
    compile 'com.facebook.react:react-native:0.20.1'
    ...
}

所以我就直接把它改成了“+”

dependencies {
    ...
    compile 'com.facebook.react:react-native:+'
    ...
}

**“+”表示:**最新的可用版本,其中每个主要SENVER组件都与提供的模式匹配

5gfr0r5j

5gfr0r5j5#

在我重命名应用程序中的软件包后,我遇到了这个问题。我使用以下命令重命名它们:

npm install react-native-rename -g
react-native-rename "MyApp" -b com.mycompany.myapp

有几行我需要手动更新:

  • 安卓/应用程序/源代码/主/java/com/winryde/MainActivity.java
  • 安卓/应用程序/源代码/主/java/com/winryde/MainApplication.java
  • 安卓系统/应用程序/源代码/调试/java/com/winryde/ReactNativeFlipper.java

我刚刚搜索了com.companyname并更改为新名称。

atmip9wb

atmip9wb6#

1.卸载react-native-reanimated以前版本

  1. cd安卓
    1../gradlew清除
    1.光盘..
    1.在2.12.0安装React Native动画
7gyucuyw

7gyucuyw7#

我遇到过同样的问题,我用下面的命令解决了它。

react-native run-android

我来知道,PackageList文件将被创建时,我们使用上述命令,并运行Android应用程序至少一次,然后如果我们同步我们的项目,你可以看到错误将消失。

相关问题