【问题标题】:Android Error: Cannot resolve symbol 'PackageList'Android 错误:无法解析符号 \'PackageList\'
【发布时间】:2022-08-07 14:13:10
【问题描述】:

无法解析符号 \'PackageList\'

一旦我在新生成的 react-native 项目中打开 android 文件夹,我就会收到此错误。

为我重新创建它的步骤是制作 expo 项目: 博览会初始化我的应用程序

然后弹出项目: 世博弹出

然后我进入 android 文件夹并打开 android\\app\\src\\main\\java\\Android\\Screen\\MainActivity.java

我得到了这个错误。

任何帮助将不胜感激。Image of error in the android studio

    标签: android reactjs react-native expo


    【解决方案1】:

    您可以通过创建一个新包来解决这个问题(右键单击您的 java 文件夹并选择新建 -> 包),给它任何名称。 在包中创建一个名为 PackageList 的 java 类 在 PackageList 中粘贴以下代码:

    package com<NameOfYourProject>;
    
    import android.app.Application;
    import android.content.Context;
    import android.content.res.Resources;
    
    import com.facebook.react.ReactPackage;
    import com.facebook.react.shell.MainPackageConfig;
    import com.facebook.react.shell.MainReactPackage;
    import java.util.Arrays;
    import java.util.ArrayList;
    
    
    
    public class PackageList {
      private Application application;
      private ReactNativeHost reactNativeHost;
      private MainPackageConfig mConfig;
    
      public PackageList(ReactNativeHost reactNativeHost) {
        this(reactNativeHost, null);
      }
    
      public PackageList(Application application) {
        this(application, null);
      }
    
      public PackageList(ReactNativeHost reactNativeHost, MainPackageConfig config) {
        this.reactNativeHost = reactNativeHost;
        mConfig = config;
      }
    
      public PackageList(Application application, MainPackageConfig config) {
        this.reactNativeHost = null;
        this.application = application;
        mConfig = config;
      }
    
      private ReactNativeHost getReactNativeHost() {
        return this.reactNativeHost;
      }
    
      private Resources getResources() {
        return this.getApplication().getResources();
      }
    
      private Application getApplication() {
        if (this.reactNativeHost == null) return this.application;
        return this.reactNativeHost.getApplication();
      }
    
      private Context getApplicationContext() {
        return this.getApplication().getApplicationContext();
      }
    
      public ArrayList<ReactPackage> getPackages() {
        return new ArrayList<>(Arrays.<ReactPackage>asList(
          new MainReactPackage(mConfig)
        ));
      }
    }
    

    【讨论】:

    • 你能详细说明为什么你必须这样做吗?
    • @sindre - 由于没有找到该课程,我不得不创建它,我不确定它是否会起作用,但随后它成功了。
    【解决方案2】:

    您需要先进行 gradle 同步(和构建) - 构建将失败,但会为您创建 PackageList(例如 android/app/build/generated/rncli/src/main/java/com/facebook/react/PackageList.java

    同样,它创建一个BuildConfig.java

    【讨论】:

      猜你喜欢
      • 2023-03-03
      • 1970-01-01
      • 2019-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多