gpt4 book ai didi

android - 无法解析符号 ReactApplication/ReactNativeHost

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:27:15 30 4
gpt4 key购买 nike

我有一个在 iOS 上完美运行的 React Native,但由于 MainApplication 和 MainActivity 中的导入问题而无法在 Android Studio 中编译。我遵循了 React Native FBSDK 指南。

在 MainApplication 中,我在导入语句中得到“无法解析符号”:

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

以及以下错误:

Error:(7, 8) 错误:MainActivity 不是抽象的,没有覆盖 ReactActivity 中的抽象方法 getPackages()错误:任务 ':app:compileDebugJavaWithJavac' 执行失败。

Compilation failed; see the compiler error output for details.

我的 MainApplication 看起来像:

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:

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";
}
}

最佳答案

从 Expo 分离我的 react-native 项目后,它也发生在我身上。

在 MainApplication 中,我对这些导入有“错误无法解析符号”:

import com.facebook.react.ReactApplication;
import com.facebook.react.ReactNativeHost;

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

"react-native": "https://github.com/expo/react-native/archive/sdk-29.0.0.tar.gz",

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

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

  1. 将其更改为:

    "react-native": "^0.57.8",

  2. 删除node_modules文件

  3. 运行 npm 安装
  4. 从 android 项目和同步项目中删除 .gradle 文件夹。

这就是我解决问题的原因。希望我有所帮助。

关于android - 无法解析符号 ReactApplication/ReactNativeHost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49120454/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com