java - 为 React-Native 构建 Android 模块时找不到符号 getCurrentActivity

标签 java android react-native

First of all, here is a test repo to replicate my issue

你好, 我正在尝试为 React-Native 创建一个简单的 Android 模块,但我在从 Java 代码获取当前 Activity 时遇到了一些问题。

这不是我处理的第一个 native 模块,但从今天起我再也不需要获取 Activity 引用了。

interested module是连接Estimote SDK的桥梁,但这与问题无关。
Android Studio 中的模块运行良好,但是当我尝试使用 react-native run android 构建它时,出现以下错误:

:react-native-estimote-android:compileReleaseJavaWithJavac
/Users/matteo/dev/react-native-example/react-native-estimote-android/android/src/main/java/com/mmazzarolo/estimoteandroid/EstimoteAndroidModule.java:64: error: cannot find symbol
        Activity currentActivity = this.getCurrentActivity();
                                       ^
  symbol: method getCurrentActivity()
1 error
:react-native-estimote-android:compileReleaseJavaWithJavac FAILED

FAILURE: Build failed with an exception.

根据我的理解,扩展 ReactContextBaseJavaModule 应该足以让我使用 this.getCurrentActivity()(Android studio 同意我的观点)。

这是我已经尝试过的:
- 实现 ActivityEventListener : 当我尝试导入 ActivityEventListener 时出现同样的找不到符号错误;
- android/.gradlew clean
- watchman watch-del-all && rm -rf node_modules/&& npm cache clean && npm prune && npm i
- 在两台不同的计算机上尝试了相同的 repo ...

有什么提示吗? 提前谢谢你。

最佳答案

问题出在 'react-native-estimote-android' 模块中的 react-native 版本

只需将 compile 'com.facebook.react:react-native:0.12.+' 更改为 编译 'com.facebook.react:react-native:+'

这将解决找不到 getCurrentActivity 符号的问题。

getCurrentActivity 方法在 react-native 0.12 版本中不可用。这就是它抛出错误的原因。

关于java - 为 React-Native 构建 Android 模块时找不到符号 getCurrentActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40007690/

相关文章:

swift - 是否可以将应用程序中的图像分享到 Instagram Story

java - 编辑或刷新 JList

java - 在java中调用Oracle过程

android - 如何使用 ijkplayer 库

android - 将数据从广播接收器传递到 Activity

android - 如何在服务中区分正在运行的应用程序、后台应用程序和已关闭的应用程序

java - 在java中解析两种不同模式的好方法

java - 无法在电子邮件验证时回滚 java appengine 事务

Android studio-向gradle添加签名配置

javascript - 在 React Native 中获取图像时 require() 不使用内插字符串