こんにちは、react native project expoをインポートし、reactをアップグレードした後、次の問題が発生しました。
C:\ Users\user\gramic\Android\app\src\main\Java\com\shop\MainApplication.Java:5:エラー:シンボルインポートが見つかりませんcom.facebook.react.ReactApplication; ^シンボル:クラスReactApplicationの場所:パッケージcom.facebook.react C:\ Users\user\gramic\Android\app\src\main\Java\com\shop\MainApplication.Java:13:エラー:シンボルインポートcomが見つかりませんfacebook.react.ReactNativeHost; ^シンボル:クラスReactNativeHost場所:パッケージcom.facebook.react C:\ Users\user\gramic\Android\app\src\main\Java\com\shop\MainApplication.Java:21:エラー:シンボルpublic class MainApplicationが見つかりませんアプリケーションの拡張ReactApplication {^シンボル:クラスReactApplication C:\ Users\user\gramic\Android\app\src\main\Java\com\shop\MainApplication.Java:23:エラー:シンボルプライベート最終ReactNativeHost mReactNativeHost = newが見つかりませんReactNativeHost(this){^シンボル:クラスReactNativeHost場所:クラスMainApplication C:\ Users\user\gramic\Android\app\src\main\Java\com\shop\MainApplication.Java:40:エラー:シンボルが見つかりませんpublic ReactNativeHost getReactNativeHost(){^シンボル:クラスReactNativeHost場所:クラスMainApplication C:\ Users\user\gramic\Android\app\src\main\Java\com\shop\MainActivity.Java:5:エラー:MainActivityは抽象ではなく、 ReactActivityパブリッククラスMainActivityがReactActivityを拡張する抽象メソッドgetPackages()をオーバーライドしない{^ C:\ Users\user\gramic\Android\app\src\main\Java\com\shop\MainApplication.Java:23:エラー:シンボルプライベートが見つかりません最終的なReactNativeHost mReactNativeHost = new ReactNativeHost(this){^シンボル:クラスReactNativeHost場所:クラスMainApplication C:\Users\user\gramic\Android\app\src\main\Java\com\shop\MainApplication.Java:39:エラー:メソッドは、スーパータイプ@Overrideからメソッドをオーバーライドまたは実装しません^
package com.shop;
import Android.app.Application;
import com.facebook.react.ReactApplication;
import com.oblador.vectoricons.VectorIconsPackage;
import com.corbt.keepawake.KCKeepAwakePackage;
import com.oblador.vectoricons.VectorIconsPackage;
import com.github.yamill.orientation.OrientationPackage;
import com.BV.LinearGradient.LinearGradientPackage;
import com.brentvatne.react.ReactVideoPackage;
import com.facebook.react.ReactNativeHost;
import com.facebook.react.ReactPackage;
import com.facebook.react.Shell.MainReactPackage;
import com.facebook.soloader.SoLoader;
import Java.util.Arrays;
import Java.util.List;
public class MainApplication extends Application implements ReactApplication {
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 VectorIconsPackage(),
new VectorIconsPackage(),
new KCKeepAwakePackage(),
new VectorIconsPackage(),
new OrientationPackage(),
new LinearGradientPackage(),
new ReactVideoPackage()
);
}
};
@Override
public ReactNativeHost getReactNativeHost() {
return mReactNativeHost;
}
@Override
public void onCreate() {
super.onCreate();
SoLoader.init(this, /* native exopackage */ false);
}
}
最初:yarnまたはnpmを使用してすべての依存関係をインストールします。
2番目:iOSのネイティブ依存関係とAndroidネイティブコード;
react-native link
3番目:RNバージョンがAndroidのbuild.gradleバージョンと異なるため、このエラーが発生する可能性があります。反応ネイティブアプリを作成すると、おそらくAndroid app like:
Android/app/build.gradle
implementation "com.facebook.react:react-native:+"
したがって、node_modulesフォルダーを調べて、react-nativeフォルダーを探し、番号が付いたフォルダーを探します。その番号は、react-nativeバージョンです。私にとっては、.58.更新Android/app/build.gradle:
implementation "com.facebook.react:react-native:0.58.3"
すべてです。
Expoからリアクションネイティブなプロジェクトを切り離した後も、私は偶然になりました。
私がここで答えたように:
私がしなければならなかった問題を解決するために:
package.jsで変更しました:
「react-native」:「 https://github.com/expo/react-native/archive/sdk-29.0.0.tar.gz 」、
に:
「react-native」:「^ 0.57.8」、
node_modulesファイルを削除します
React Nativeをアップグレードしようとしたときにも、これらのエラーが発生しました。 gradlewキャッシュ(Androidプロジェクトフォルダー内の_./gradlew clean
_)をクリーニングするか、Androidプロジェクトフォルダー内の_.gradle
_フォルダー全体を削除することで、それらを解決する人々を見てきました。
しかし、それは私にはうまくいきませんでした。私の問題は_Android/build.gradle
_ファイルにありました。以前は、別のパッケージ用にMavenリポジトリを追加する必要があり、そのようにしていました。
_maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/Android"
// The following is NOT the right way
url "https://maven.google.com"
}
_
Android docs では、すべてのMavenリポジトリが独自の_maven {}
_ブロックにあるべきであると言われています。
したがって、私のために働いた解決策はそれをすることでした:
_maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/Android"
}
maven {
url "https://maven.google.com"
}
_
それがお役に立てば幸いです、そしてあなたのリアクションアップグレードに幸運を! ;)
私は同様の問題があり、見つけたアドバイスはすべて役に立たなかったので、同じ問題を抱えている他の人にはこれをやめています。
私にとっては、build.gradleファイルにreact-nativeの静的バージョンをコンパイル/実装したサードパーティのパッケージ(pushwoosh-react-native-plugin)であることが判明しました。
なんとか見つけました
上記のように、次の依存関係が定義されたpushwoosh build.gradleファイルであることが判明しました。
dependencies {
...
compile 'com.facebook.react:react-native:0.20.1'
...
}
そこで私は先に進み、その場で「+」に変更しました
dependencies {
...
compile 'com.facebook.react:react-native:+'
...
}
「+」は以下を意味します主要なSEMVERコンポーネントのそれぞれが提供されたパターンと一致する最新の利用可能なバージョン