我有一个在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看起来像这样:
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";
}
}
发布于 2018-12-14 00:52:05
在把我的react原生项目从世博会上分离出来后,我也遇到了这种情况。
在MainApplication中,我为这些导入设置了"error Cannot resolve symbol“:
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",
问题是安卓找不到这样的node_modules目录。
为了解决这个问题,我必须:
"react-native":"^0.57.8",
这就解决了我的问题。希望我能帮上忙。
发布于 2018-07-20 20:36:48
我通过升级react-native,react-native-cli,gradle plugin到最新版本解决了这个问题
https://stackoverflow.com/questions/49120454
复制相似问题