我在Android模拟器上遇到此错误:
反应本机版本不匹配: Javascript版本:0.58.5 本机版本:0.59.5
我已经升级了React Native,模块,Android Studio和几乎所有我能做的东西。在iOS上一切正常,这仅在Android上发生。构建成功
Package.json
{
"name": "MyProject",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"@react-native-community/async-storage": "^1.3.3",
"latlon-geohash": "^1.1.0",
"react": "16.8.3",
"react-native": "0.59.5",
"react-native-firebase": "^5.2.3",
"react-native-gesture-handler": "^1.0.16",
"react-native-keyboard-aware-scroll-view": "^0.8.0",
"react-native-linear-gradient": "^2.5.3",
"react-native-maps": "^0.24.2",
"react-native-vector-icons": "^6.4.2",
"react-navigation": "^3.3.2",
"react-redux": "^6.0.1",
"redux": "^4.0.1"
},
"devDependencies": {
"babel-core": "^7.0.0-bridge.0",
"babel-jest": "24.1.0",
"jest": "24.1.0",
"metro-react-native-babel-preset": "0.52.0",
"react-test-renderer": "16.6.3"
},
"jest": {
"preset": "react-native"
}
}
Build.gradle
buildscript {
ext {
buildToolsVersion = "28.0.3"
minSdkVersion = 16
compileSdkVersion = 28
targetSdkVersion = 28
supportLibVersion = "28.0.0"
googlePlayServicesVersion = "15.0.1"
androidMapsUtilsVersion = "0.5+"
}
repositories {
google()
//mavenLocal()
jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
}
dependencies {
classpath 'com.android.tools.build:gradle:3.3.0'
classpath 'com.google.gms:google-services:4.2.0'
}
}
allprojects {
repositories {
mavenLocal()
google()
jcenter()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url "$rootDir/../node_modules/react-native/android"
}
}
}
/*
task wrapper(type: Wrapper) {
gradleVersion = '4.7'
distributionUrl = distributionUrl.replace("bin", "all")
}*/
dependencies {
implementation project(':react-native-firebase')
implementation project(':react-native-gesture-handler')
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
implementation "com.facebook.react:react-native:+" // From node_modules
implementation project(':react-native-linear-gradient')
implementation project(':react-native-maps')
implementation "com.google.android.gms:play-services-base:16.0.1"
implementation project(':@react-native-community_async-storage')
implementation ("com.google.firebase:firebase-core:16.0.7") {
exclude group: 'com.google.android.gms'
}
implementation ("com.google.firebase:firebase-auth:16.1.0") {
exclude group: 'com.google.android.gms'
}
implementation ("com.google.firebase:firebase-database:16.0.6") {
exclude group: 'com.google.android.gms'
}
}
我尝试关闭所有终端,安装纱,创建新的android设备。我猜想它与Package.json中的React Native的实际版本有关,但是它是0.59.5,当我搜索整个项目时,我在任何地方都找不到对0.58.5的引用。
谢谢 卢克
答案 0 :(得分:1)
关闭所有终端和IDE,然后再次启动。它将起作用
答案 1 :(得分:0)
确保touchesBegan
中的RN版本与touchesEnded
中的RN版本相同,它看起来应该像这样:
在package.json中
var lastTouchesBeganDate: Date?
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
lastTouchesBeganDate = Date()
let touch = touches.first
startingPoint = touch?.preciseLocation(in: self)
TrailUserInputX.append(startingPoint.x)
TrailUserInputY.append(startingPoint.y)
print("\(String(describing: touch?.force))")
}
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
time += lastTouchesBeganDate?.timeIntervalSinceNow ?? 0
endingPointX = TrailUserInputX.last
if endingPointX != nil {
UserMatchingLocation.append(endingPointX!)
} }
和package.json
android/app/build.gradle
编辑: 您还可以检查打包程序和仿真器/设备是否在同一网络中,并且从正确的位置获取JS软件包吗? 似乎您的应用程序在构建时没有得到更新,它停留在旧代码中。
希望这会有所帮助。祝您编码愉快!
答案 2 :(得分:0)
我在github论坛的帮助下解决了这个问题。在我的情况下,此错误是由模拟器中装有Android 9引起的。使用Android版本8安装新设备解决了该问题。
答案 3 :(得分:0)
尝试以下操作:
package.json
"react": "16.8.6",
"react-native": "0.60.4",
"react-native-maps": "0.25.0",
build.gradle:
googlePlayServicesVersion = "15.0.1"
androidMapsUtilsVersion = "0.5+"
答案 4 :(得分:0)
我从另一个使用旧版RN的分支的上一版本中剩下workdir/android/app/src/main/assets/index.android.bundle
。
运行react-native bundle --platform android --dev true --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
为我修复了该问题。