几个月来,我已经构建了自己的React Native应用程序,并在iOS设备上进行了测试和故障排除。现在,我第一次尝试在Android上构建和测试这款应用程序。问题是,我在尝试运行Android版本的应用程序时,总是遇到错误。经过几个小时的调试和故障排除,我试着创建一个新的RN项目,看看它是否可以在我的模拟器和设备上运行。我让那部分工作,然后我想将我现有的应用程序项目的文件复制/粘贴到新项目中。
我将现有的资产、样式、源JS文件和package.json文件粘贴到新项目中,运行npm install
,然后我得到了与运行react-native run-android
时在原始项目中完全相同的错误消息。
完整的错误消息如下:
error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup.
Error: Command failed: ./gradlew app:installDebug -PreactNativeDevServerPort=8081
Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeDebugAssets'.
> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
> Could not find com.facebook.yoga:proguard-annotations:1.14.1.
Searched in the following locations:
- https://dl.google.com/dl/android/maven2/com/facebook/yoga/proguard-annotations/1.14.1/proguard-annotations-1.14.1.pom
- https://repo.maven.apache.org/maven2/com/facebook/yoga/proguard-annotations/1.14.1/proguard-annotations-1.14.1.pom
- file:/Users/MyUser/.m2/repository/com/facebook/yoga/proguard-annotations/1.14.1/proguard-annotations-1.14.1.pom
- file:/Users/MyUser/MyAppFolder/MyApp/node_modules/react-native/android/com/facebook/yoga/proguard-annotations/1.14.1/proguard-annotations-1.14.1.pom
- file:/Users/MyUser/MyAppFolder/MyApp/node_modules/jsc-android/dist/com/facebook/yoga/proguard-annotations/1.14.1/proguard-annotations-1.14.1.pom
- https://www.jitpack.io/com/facebook/yoga/proguard-annotations/1.14.1/proguard-annotations-1.14.1.pom
Required by:
project :app > com.facebook.react:react-native:0.64.2
> Could not find com.facebook.fbjni:fbjni-java-only:0.0.3.
Searched in the following locations:
- https://dl.google.com/dl/android/maven2/com/facebook/fbjni/fbjni-java-only/0.0.3/fbjni-java-only-0.0.3.pom
- https://repo.maven.apache.org/maven2/com/facebook/fbjni/fbjni-java-only/0.0.3/fbjni-java-only-0.0.3.pom
- file:/Users/MyUser/.m2/repository/com/facebook/fbjni/fbjni-java-only/0.0.3/fbjni-java-only-0.0.3.pom
- file:/Users/MyUser/MyAppFolder/MyApp/node_modules/react-native/android/com/facebook/fbjni/fbjni-java-only/0.0.3/fbjni-java-only-0.0.3.pom
- file:/Users/MyUser/MyAppFolder/MyApp/node_modules/jsc-android/dist/com/facebook/fbjni/fbjni-java-only/0.0.3/fbjni-java-only-0.0.3.pom
- https://www.jitpack.io/com/facebook/fbjni/fbjni-java-only/0.0.3/fbjni-java-only-0.0.3.pom
Required by:
project :app > com.facebook.react:react-native:0.64.2
> Could not find com.yqritc:android-scalablevideoview:1.0.4.
Searched in the following locations:
- https://dl.google.com/dl/android/maven2/com/yqritc/android-scalablevideoview/1.0.4/android-scalablevideoview-1.0.4.pom
- https://repo.maven.apache.org/maven2/com/yqritc/android-scalablevideoview/1.0.4/android-scalablevideoview-1.0.4.pom
- file:/Users/MyUser/.m2/repository/com/yqritc/android-scalablevideoview/1.0.4/android-scalablevideoview-1.0.4.pom
- file:/Users/MyUser/MyAppFolder/MyApp/node_modules/react-native/android/com/yqritc/android-scalablevideoview/1.0.4/android-scalablevideoview-1.0.4.pom
- file:/Users/MyUser/MyAppFolder/MyApp/node_modules/jsc-android/dist/com/yqritc/android-scalablevideoview/1.0.4/android-scalablevideoview-1.0.4.pom
- https://www.jitpack.io/com/yqritc/android-scalablevideoview/1.0.4/android-scalablevideoview-1.0.4.pom
Required by:
project :app > project :react-native-video
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 10s
at makeError (/Users/MyUser/MyAppFolder/MyApp/node_modules/execa/index.js:174:9)
at /Users/MyUser/MyAppFolder/MyApp/node_modules/execa/index.js:278:16
at processTicksAndRejections (node:internal/process/task_queues:96:5)
at async runOnAllDevices (/Users/MyUser/MyAppFolder/MyApp/node_modules/@react-native-community/cli-platform-android/build/commands/runAndroid/runOnAllDevices.js:94:5)
at async Command.handleAction (/Users/MyUser/MyAppFolder/MyApp/node_modules/react-native/node_modules/@react-native-community/cli/build/index.js:186:9)
我试着在android文件夹中运行./gradlew clean
,但没有成功。我的build. gradle文件看起来像这样:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
ext {
buildToolsVersion = "30.0.2"
minSdkVersion = 21
compileSdkVersion = 30
targetSdkVersion = 30
ndkVersion = "20.1.5948944"
kotlinVersion = "1.3.72"
}
repositories {
repositories {
google()
maven { url 'https://maven.google.com' }
mavenLocal()
mavenCentral()
// 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:4.2.1")
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion"
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
mavenCentral()
mavenLocal()
maven {
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
url("$rootDir/../node_modules/react-native/android")
}
maven {
// Android JSC is installed from npm
url("$rootDir/../node_modules/jsc-android/dist")
}
maven { url 'https://www.jitpack.io' }
}
}
请让我知道,如果你知道该怎么做,或者如果你经历过类似的问题!
4条答案
按热度按时间lmyy7pcs1#
我遇到了同样的问题,并通过卸载react-native-video(npm uninstall --保存react-native-video)暂时解决了它。这不是一个很好的答案,因为我需要这个组件,但我还没有一个完整的解决方案。我认为不知何故com.yqritc:android-scalablevideoview:1.0.4.是react-native-video所必需的,但已经丢失或删除了。欢迎其他想法。
更新:已解决!在Android文件夹的build.gradle中,您需要在所有项目(而不是构建依赖项)中添加存储库“jcenter()”,如下所示...
j9per5c42#
在android/build.gradle中,最好只从jcenter()中提取特定的包:
kcugc4gi3#
因为jCenter已经从latest react native和com.yqritc:android-scalablevideoview中删除了,所以你需要再次添加jCenter作为仓库,但是我建议你定义这个包,这样其他的依赖项就不会再从jCenter中获取了。因为jCenter不允许对任何包进行任何更新,所以其他的包都应该从mavenCentral中获取。
您可以将jcenter添加到android/build.gradle,如下所示:
eimct9ow4#
这个页面上的解决方案现在已经坏了,因为到今天jcenter终于崩溃了。react-native-video-processing的较新alpha版本已经修复了这个问题,但是如果你像我一样,只想现在就开始构建它,那么就在
node_modules/react-native-video-processing/android/build.gradle
中应用this patch:而不是:
用途: