首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法解析symbol ReactApplication/ReactNativeHost

无法解析symbol ReactApplication/ReactNativeHost
EN

Stack Overflow用户
提问于 2018-03-06 06:19:41
回答 2查看 5.3K关注 0票数 14

我有一个在iOS上完美运行的原生react,但由于MainApplication和MainActivity中的导入问题,它不能在Android studio中编译。我遵循了React Native FBSDK指南。

在MainApplication中,我在import语句上得到"Cannot resolve symbol“:

导入com.facebook.react.ReactApplication;导入com.facebook.react.ReactNativeHost;

以及以下错误:

错误:(7,8)错误: MainActivity不是抽象的,并且不会重写ReactActivity中的抽象方法getPackages()错误:对任务':app:compileDebugJavaWithJavac‘执行失败。

编译失败;有关详细信息,请参阅编译器错误输出。

我的MainApplication看起来像这样:

代码语言:javascript
复制
package com.ExampleApp;

import android.app.Application;

import com.facebook.react.ReactApplication;
import com.tradle.react.UdpSocketsModule;
import com.peel.react.TcpSocketsModule;
import com.peel.react.rnos.RNOSModule;
import com.masteratul.exceptionhandler.ReactNativeExceptionHandlerPackage;
import com.oblador.vectoricons.VectorIconsPackage;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import com.facebook.CallbackManager;
import com.facebook.FacebookSdk;
import com.facebook.reactnative.androidsdk.FBSDKPackage;
import com.facebook.appevents.AppEventsLogger;

import java.util.Arrays;
import java.util.List;

public class MainApplication extends Application implements ReactApplication {

  private static CallbackManager mCallbackManager = CallbackManager.Factory.create();

  protected static CallbackManager getCallbackManager() {
    return mCallbackManager;
  }

  @Override
  public void onCreate() {
    super.onCreate();
    // Use AppEventsLogger to log custom events.
    AppEventsLogger.activateApp(this);
  }

  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 UdpSocketsModule(),
            new TcpSocketsModule(),
            new RNOSModule(),
            new ReactNativeExceptionHandlerPackage(),
            new VectorIconsPackage(),
            new FBSDKPackage(mCallbackManager)

      );
    }
  };

  @Override
  public ReactNativeHost getReactNativeHost() {
    return mReactNativeHost;
  }

}

和我的MainActivity:

代码语言:javascript
复制
import android.content.Intent;
import com.facebook.react.ReactActivity;


public class MainActivity extends ReactActivity {

    /**
     * Returns the name of the main component registered from JavaScript.
     * This is used to schedule rendering of the component.
     */

    @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        MainApplication.getCallbackManager().onActivityResult(requestCode, resultCode, data);
    }

    @Override
    protected String getMainComponentName() {
        return "ExampleApp";
    }
}
EN

回答 2

Stack Overflow用户

发布于 2018-12-14 00:52:05

在把我的react原生项目从世博会上分离出来后,我也遇到了这种情况。

在MainApplication中,我为这些导入设置了"error Cannot resolve symbol“:

代码语言:javascript
复制
import com.facebook.react.ReactApplication;
import com.facebook.react.ReactNativeHost;

在我的package.json文件中,我使用:

代码语言:javascript
复制
"react-native": "https://github.com/expo/react-native/archive/sdk-29.0.0.tar.gz",

问题是安卓找不到这样的node_modules目录。

为了解决这个问题,我必须:

  1. 将其更改为:

"react-native":"^0.57.8",

  • delete node_modules file

  • run npm install

  • delete .gradle folder from android project and sync project。

这就解决了我的问题。希望我能帮上忙。

票数 7
EN

Stack Overflow用户

发布于 2018-07-20 20:36:48

我通过升级react-native,react-native-cli,gradle plugin到最新版本解决了这个问题

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49120454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档