嗨,导入我的 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 许可协议
首先:使用 yarn 或 npm 安装所有依赖项;
第二:使用下面的代码链接iOS和Android原生代码的原生依赖;
第三:这个错误可能是因为你的RN版本与Android的build.gradle版本不同。当您创建一个 react-native 应用程序时,它可能会创建 android 应用程序,例如:
因此,检查你的 node_modules 文件夹,查找 react-native 文件夹并查找带有数字的文件夹,该数字是 react-native 版本。对我来说是 0.58.3 然后更新 android/app/build.gradle :
这就是全部。