卸载react-native-navigation后React Native安卓项目编译报错求助
问题现象
卸载react-native-navigation npm包后,运行安卓项目出现编译错误,核心报错如下:
S:\Collab\ReactNative\Edesign\android\app\src\main\java\com\edesign\MainActivity.java:4: error: package com.reactnativenavigation does not exist import com.reactnativenavigation.NavigationActivity; ^ S:\Collab\ReactNative\Edesign\android\app\src\main\java\com\edesign\MainActivity.java:7: error: cannot find symbol public class MainActivity extends NavigationActivity { ^ symbol: class NavigationActivity ...(其他类似找不到com.reactnativenavigation相关类的错误)
问题原因
仅通过npm卸载包无法还原安卓原生代码中对react-native-navigation的修改——安装该包时,会自动修改MainActivity.java和MainApplication.java,继承特定的导航类并导入相关包,卸载后这些修改残留导致编译失败。
解决步骤
还原MainActivity.java
打开android/app/src/main/java/com/edesign/MainActivity.java(替换为你的项目实际包路径):- 删除
import com.reactnativenavigation.NavigationActivity;语句 - 将类声明从
public class MainActivity extends NavigationActivity改为public class MainActivity extends ReactActivity - 修正
onCreate方法为React Native默认实现:@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); }
(如果项目原本有自定义的ReactActivityDelegate逻辑,保留即可)
- 删除
还原MainApplication.java
打开android/app/src/main/java/com/edesign/MainApplication.java:- 删除所有
com.reactnativenavigation开头的导入语句 - 将类声明从
public class MainApplication extends NavigationApplication改为:public class MainApplication extends Application implements ReactApplication { - 替换NavigationReactNativeHost为默认的ReactNativeHost实现:
private final ReactNativeHost mReactNativeHost = new ReactNativeHost(this) { @Override public boolean getUseDeveloperSupport() { return BuildConfig.DEBUG; } @Override protected List<ReactPackage> getPackages() { List<ReactPackage> packages = new PackageList(this).getPackages(); // 移除之前添加的NavigationPackage相关代码 return packages; } @Override protected String getJSMainModuleName() { return "index"; } }; @Override public ReactNativeHost getReactNativeHost() { return mReactNativeHost; }
- 删除所有
清理安卓构建缓存
进入项目的android目录,执行:# Windows系统 gradlew.bat clean # macOS/Linux系统 ./gradlew clean重新运行项目
返回项目根目录,执行:npm install npx react-native run-android
内容的提问来源于stack exchange,提问作者Sumanl46
相关产品推荐
相关产品推荐

