您好,在导入我的反应原生项目世博会和升级反应之后,我遇到了以下问题。
C:\用户\用户\ gramic \机器人\应用\ SRC \主\的java \ COM \店\ MainApplication.java:5: 错误:找不到符号导入com.facebook.react.ReactApplication; ^符号:类ReactApplication位置:包com.facebook.react C:\用户\用户\ gramic \机器人\程序\ SRC \主\ java中的\ com \店\ MainApplication.java:13: 错误:找不到符号导入com.facebook.react.ReactNativeHost; ^符号:类ReactNativeHost位置:包com.facebook.react C:\用户\用户\ gramic \机器人\程序\ SRC \主\ java中的\ com \店\ MainApplication.java:21: 错误:找不到符号公共类MainApplication扩展 应用程序实现ReactApplication { ^符号:类ReactApplication C:\用户\用户\ gramic \机器人\程序\ SRC \主\ java中的\ com \店\ MainApplication.java:23: 错误:无法找到符号私有最终的ReactNativeHost mReactNativeHost = new ReactNativeHost(this){ ^符号:类ReactNativeHost位置:类MainApplication C:\用户\用户\ gramic \机器人\程序\ SRC \主\ java中的\ com \店\ MainApplication.java:40: 错误:无法找到符号public ReactNativeHost getReactNativeHost(){ ^符号:类ReactNativeHost位置:类MainApplication C:\用户\用户\ gramic \机器人\应用\ SRC \主\的java \ COM \店\ MainActivity.java:5: 错误:MainActivity不是抽象的,不会覆盖抽象 方法getPackages()在ReactActivity公共类MainActivity中 扩展ReactActivity { ^ C:\ Users \ user \ gramic \ android \ app \ src \ main \ java \ com \ shop \ MainApplication.java:23: 错误:无法找到符号私有最终的ReactNativeHost mReactNativeHost = new ReactNativeHost(this){ ^符号:类ReactNativeHost位置:类MainApplication C:\用户\用户\ gramic \机器人\程序\ SRC \主\ java中的\ com \店\ MainApplication.java:39: error:方法不会覆盖或实现超类型的方法 @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);
}
}
答案 0 :(得分:6)
首先:使用 yarn 或 npm 安装所有依赖项;
第二:使用下面的代码链接iOS和Android本机代码上的本机依赖项;
react-native link
第三:由于您的RN版本与Android的build.gradle版本不同,因此可能会发生此错误。当您创建本机应用程序时,它可能会创建类似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"
全部。
答案 1 :(得分:5)
将我的本机项目与Expo分离后,我也发生了
我在这里回答:
为了解决这个问题,我不得不:
:
“ react-native”:“ https://github.com/expo/react-native/archive/sdk-29.0.0.tar.gz”,
至:
“ react-native”:“ ^ 0.57.8”,
删除node_modules文件
答案 2 :(得分:4)
尝试升级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"
}
希望它会有所帮助,祝你的反应升级好运! ;)
答案 3 :(得分:1)
我遇到了类似的问题,我发现的所有建议都无济于事,因此我将其删除给存在相同问题的其他人。
对我来说,它原来是一个第三方软件包(pushwoosh-react-native-plugin),它在build.gradle文件中编译/实现了react-native的静态版本。
我设法通过
找到了它如上所述: 原来是pushwoosh build.gradle文件,它定义了以下依赖项:
dependencies {
...
compile 'com.facebook.react:react-native:0.20.1'
...
}
所以我继续进行,当场将其更改为“ +”
dependencies {
...
compile 'com.facebook.react:react-native:+'
...
}
“ +”表示: 最新的可用版本,其中每个主要SEMVER组件都与提供的模式匹配
答案 4 :(得分:1)
在我重命名应用程序中的包后,我的问题出现了。我用它来重命名它们:
npm install react-native-rename -g
react-native-rename "MyApp" -b com.mycompany.myapp
我需要手动更新几行:
我刚刚搜索了 com.companyname 并更改为新名称。
答案 5 :(得分:0)
我遇到了同样的问题,我用下面的命令解决了
react-native run-android
我知道PackageList文件将在我们使用上述命令并至少运行一次android应用程序时创建,然后如果我们同步我们的项目,您可以看到错误将消失。 >