gpt4 book ai didi

android - React Native Android 模块与 Android Studio 和 React Native Builder 冲突

转载 作者:搜寻专家 更新时间:2023-11-01 09:19:21 25 4
gpt4 key购买 nike

我有一个 React Native Android Native 模块,它实现了 ActivityEventListener

在 Android studio 中它生成一个方法:

onActivityResult(int,int,IntentData)

但是当我导入它以响应 native 并尝试运行 android 时,它要求 onNewIntent(Intent intent) 需要实现并且

CLass 不是抽象的,不会覆盖 ActivityEventListener 中的抽象方法 onActivityResult(Activity,int,int,Intent)

如何让 Android Studio 和 React Native 遵守相同的要求?

System:
OS: macOS 10.14.5
CPU: (8) x64 Intel(R) Core(TM) i7-4870HQ CPU @ 2.50GHz
Memory: 33.43 MB / 16.00 GB
Shell: 5.3 - /bin/zsh
Binaries:
Node: 10.15.3 - /usr/local/bin/node
Yarn: 1.16.0 - /usr/local/bin/yarn
npm: 6.11.3 - /usr/local/bin/npm
Watchman: 4.9.0 - /usr/local/bin/watchman
SDKs:
iOS SDK:
Platforms: iOS 12.2, macOS 10.14, tvOS 12.2, watchOS 5.2
Android SDK:
API Levels: 18, 21, 22, 23, 24, 25, 26, 27, 28
Build Tools: 21.1.2, 23.0.1, 24.0.1, 25.0.0, 25.0.1, 25.0.2, 25.0.3, 26.0.1, 26.0.2, 26.0.3, 27.0.3, 28.0.0, 28.0.1, 28.0.2, 28.0.3
Android NDK: 18.1.5063045
IDEs:
Android Studio: 3.3 AI-182.5107.16.33.5314842
Xcode: 10.2.1/10E1001 - /usr/bin/xcodebuild
npmPackages:
react: 16.8.6 => 16.8.6
react-native: 0.60.5 => 0.60.5

我在 build.gradle 中对 React Native 的依赖是这样的

dependencies {
implementation 'com.facebook.react:react-native:+'
}

Native 模块是使用当时在 React Native 文档中的 react-native-create-library 搭建起来的。似乎已更新到新的推荐库。

最佳答案

问题似乎是 gradle 没有从 node_modules 文件夹中提取 react native 依赖项。如果看一看 /android/build.gradle文件,你可以看到它注册了url("$rootDir/../node_modules/react-native/android")作为 Maven 存储库。

Gradle 至少应该接收一个版本为 0.6+ 的 react-native 库.

故障排除步骤:

  • 确保 /android/build.gradle看起来 similar to this one .
    特别是 repositories部分。
  • 确保节点依赖项是最新的 yarn installnpm install (取决于您使用的是什么)。
  • 尝试将依赖项设置为 android/app/build.gradle 中的确切版本号(See this link for reference)。当前版本似乎是 0.60.5

其他故障排除步骤

看来你在 android studio 中的 react-native 版本不对。如果 react-native 是通过 gradle 提供的,您可能需要清理构建环境并查看它是否重新加载依赖项。

在 Android Studio 中:Build -> Clean Project

您还可以检查 External Libraries在 Android Studio 的项目 View 中确认您使用的是最新的库。

此外,Android Studio 有时有点奇怪,通常各种问题都由 File -> Invalidate Caches / Restart -> Invalidate and Restart 解决

为了深入研究,因为 react-native 版本 0.33.x它应该需要新的方法签名:

https://github.com/facebook/react-native/commit/fbd2e139103e3d520f6dfc009d6200f8b8168e35#diff-8b63add5f85adc06c226d8a36c4c2f88

这就是 current file in the master branch 的方式看起来像:

public interface ActivityEventListener {

/** Called when host (activity/service) receives an {@link Activity#onActivityResult} call. */
void onActivityResult(Activity activity, int requestCode, int resultCode, Intent data);

/** Called when a new intent is passed to the activity */
void onNewIntent(Intent intent);
}

如果一切都失败了,请检查你的 gradle 依赖文件以确保你使用的是正确的版本和/或从以下位置删除 gradle 缓存:

  • C:\Users\<user>\.gradle\caches
  • /home/<user>/.gradle/caches

关于android - React Native Android 模块与 Android Studio 和 React Native Builder 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57834464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com