android - ModuleRegistryConsumer 弹出后出现裸反应原生错误
问题描述
我使用 expo 工作流程创建了一个项目,但由于某种原因,我不得不将其弹出以裸露本机工作流程。如果我安装任何 expo 包,则在弹出后。在 android build 上,它给了我一个主要与 ModuleRegistryConsumer 相关的错误。对于包中的各种文件,我收到此错误。
BUILD FAILED in 11s
error Failed to install the app. Make sure you have the Android development environment set up: https://facebook.github.io/react-native/docs/getting-started.html#android-development-environment. Run CLI with --verbose flag for more details.
Error: Command failed: gradlew.bat app:installDebug -PreactNativeDevServerPort=8081
D:\ReactNativeProjects\EjectTest\ejecttest1\node_modules\expo-av\android\src\main\java\expo\modules\av\AVManager.java:23: error: cannot find symbol
import org.unimodules.core.interfaces.ModuleRegistryConsumer;
^
symbol: class ModuleRegistryConsumer
location: package org.unimodules.core.interfaces
D:\ReactNativeProjects\EjectTest\ejecttest1\node_modules\expo-av\android\src\main\java\expo\modules\av\AVManager.java:45: error: cannot find symbol
public class AVManager implements LifecycleEventListener, AudioManager.OnAudioFocusChangeListener, MediaRecorder.OnInfoListener, AVManagerInterface, InternalModule, ModuleRegistryConsumer {
^
symbol: class ModuleRegistryConsumer
D:\ReactNativeProjects\EjectTest\ejecttest1\node_modules\expo-av\android\src\main\java\expo\modules\av\video\VideoViewManager.java:14: error: cannot find symbol
import org.unimodules.core.interfaces.ModuleRegistryConsumer;
^
symbol: class ModuleRegistryConsumer
location: package org.unimodules.core.interfaces
D:\ReactNativeProjects\EjectTest\ejecttest1\node_modules\expo-av\android\src\main\java\expo\modules\av\video\VideoViewManager.java:16: error: cannot find symbol
public class VideoViewManager extends ViewManager<VideoViewWrapper> implements ModuleRegistryConsumer {
^
symbol: class ModuleRegistryConsumer
D:\ReactNativeProjects\EjectTest\ejecttest1\node_modules\expo-av\android\src\main\java\expo\modules\av\AVModule.java:10: error: cannot find symbol
import org.unimodules.core.interfaces.ModuleRegistryConsumer;
^
symbol: class ModuleRegistryConsumer
location: package org.unimodules.core.interfaces
D:\ReactNativeProjects\EjectTest\ejecttest1\node_modules\expo-av\android\src\main\java\expo\modules\av\AVModule.java:12: error: cannot find symbol
public class AVModule extends ExportedModule implements ModuleRegistryConsumer {
^
symbol: class ModuleRegistryConsumer
D:\ReactNativeProjects\EjectTest\ejecttest1\node_modules\expo-av\android\src\main\java\expo\modules\av\video\VideoManager.java:15: error: cannot find symbol
import org.unimodules.core.interfaces.ModuleRegistryConsumer;
^
symbol: class ModuleRegistryConsumer
location: package org.unimodules.core.interfaces
D:\ReactNativeProjects\EjectTest\ejecttest1\node_modules\expo-av\android\src\main\java\expo\modules\av\video\VideoManager.java:18: error: cannot find symbol
public class VideoManager extends ExportedModule implements ModuleRegistryConsumer {
^
symbol: class ModuleRegistryConsumer
D:\ReactNativeProjects\EjectTest\ejecttest1\node_modules\expo-av\android\src\main\java\expo\modules\av\AVManager.java:119: error: method does not override or implement a method from a supertype
@Override
^
D:\ReactNativeProjects\EjectTest\ejecttest1\node_modules\expo-av\android\src\main\java\expo\modules\av\AVManager.java:503: error: cannot find symbol
return mModuleRegistry.getModule(Permissions.class).getPermission(Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED;
^
symbol: method getPermission(String)
location: interface Permissions
D:\ReactNativeProjects\EjectTest\ejecttest1\node_modules\expo-av\android\src\main\java\expo\modules\av\video\VideoViewManager.java:26: error: method does not override or implement a method from a supertype
@Override
^
D:\ReactNativeProjects\EjectTest\ejecttest1\node_modules\expo-av\android\src\main\java\expo\modules\av\AVModule.java:24: error: method does not override or implement a method from a supertype
@Override
^
D:\ReactNativeProjects\EjectTest\ejecttest1\node_modules\expo-av\android\src\main\java\expo\modules\av\video\VideoManager.java:42: error: method does not override or implement a method from a supertype
@Override
^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: D:\ReactNativeProjects\EjectTest\ejecttest1\node_modules\expo-av\android\src\main\java\expo\modules\av\player\PlayerData.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
13 errors
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':expo-av:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.
* 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 11s
at checkExecSyncError (child_process.js:621:11)
at execFileSync (child_process.js:639:15)
at runOnAllDevices (D:\ReactNativeProjects\EjectTest\ejecttest1\node_modules\@react-native-community\cli-platform-android\build\commands\runAndroid\runOnAllDevices.js:94:39)
at processTicksAndRejections (internal/process/task_queues.js:85:5)
at async Command.handleAction (D:\ReactNativeProjects\EjectTest\ejecttest1\node_modules\react-native\node_modules\@react-native-community\cli\build\index.js:164:9)
这是运行 react-native run-android 后显示的所有错误的日志。
我的开发环境是。-Expo SDK:36.0.0 -React 本机:0.61.5
解决方案
弹出后,您不再使用Expo enivrement,您必须将android-studio设置为所需的ADB,JAVAHOME,SDK ...
我建议您按照 react-native doc 设置您的 android 和 ios 环境:docs
这次一定要遵循 React Native CLI 快速入门路径。
推荐阅读
- c# - 为同一用户在团队中重新安装机器人,不调用 OnMembersAddedAsync() 方法
- html - 显示块在 html/css 中不起作用。还有什么其他选择?
- laravel - 从 URL 在 Laravel 中创建路由
- sql - Postgres'group'父级按子级数
- android - 无法启动 APK 文件以便用户安装它,Android 9 及更高版本?
- react-native - undefined 不是函数(在'...action.account.map...'附近)
- php - HTML - 带有弹出窗口的 href
- javascript - 如何将字符串转换为数学表达式?
- php - iframe 自动播放视频第一次无法正常工作
- r - 从向量中删除元素,进行计算并将它们放回R中的最有效方法