【问题标题】:Android: error: cannot find symbol packages.add(new MyAppPackage())Android:错误:找不到符号包。添加(新 MyAppPackage())
【发布时间】:2021-03-07 23:12:01
【问题描述】:

请帮忙!!

我正在开发一个 react-native 应用程序,其中涉及使用本机日历模块。我正在尝试使用 react native 注册此模块,但我不断收到此错误。

这就是我在MainApplication.java 中注册模块的方式:

   @Override
    protected List<ReactPackage> getPackages() {
      List<ReactPackage> packages = new PackageList(this).getPackages();
      packages.add(new ModuleRegistryAdapter(mModuleRegistryProvider));
      packages.add(new MyAppPackage());
      return packages;
    }

这是我使用此处的教程创建的 MyAppPackage.java 文件,https://reactnative.dev/docs/native-modules-android#register-the-module-android-specific.

package com.chowtime; // replace your-app-name with your app’s name
import com.facebook.react.ReactPackage;
import com.facebook.react.bridge.NativeModule;
import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.ViewManager;

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class MyAppPackage implements ReactPackage {

   @Override
   public List<ViewManager> createViewManagers(ReactApplicationContext reactContext) {
       return Collections.emptyList();
   }

   @Override
   public List<NativeModule> createNativeModules(
           ReactApplicationContext reactContext) {
       List<NativeModule> modules = new ArrayList<>();

       modules.add(new CalendarModule(reactContext));

       return modules;
   }

}

注意:此应用程序之前是使用 expo 上的托管工作流创建的,并被弹出到裸工作流中。这是相关文件的目录:

【问题讨论】:

  • 我在这里没有发现任何问题,但在我自己的应用程序中,我只是添加了类似 'packages.add(new MyAppPackage());` 的内容。所以只需尝试一件事评论这个packages.add(new ModuleRegistryAdapter(mModuleRegistryProvider));,停止你的开发服务器,清理并重建你的android项目,然后运行npx react-native run-android

标签: java android react-native expo


【解决方案1】:

这和导入问题一样简单吗?

我注意到您的 MyAppPackage 类在此处定义:

package com.chowtime; // replace your-app-name with your app’s name

但是您的 MainApplication 错误消息似乎表明一个子包,特别是“chowtime.chowtime”。你的意思是两个都吃吗?

   com.chowtime.chowtime.MainApplication

【讨论】:

    【解决方案2】:

    我遇到了同样的错误。似乎有关如何在 react native 中创建/使用本机模块的文档缺少一步。

    在 MainApplication.java 文件中,您需要导入“MyAppPackage”。

    import com.your-app-name.MyAppPackage;
    

    如果不将它导入“MainApplication”文件,它将不知道 MyAppPackage 指的是什么,因此找不到符号错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-15
      • 1970-01-01
      • 2015-01-06
      • 2020-06-30
      • 1970-01-01
      相关资源
      最近更新 更多