React Native Flipper 调试问题:"NO APPLICATION SELECTED"

React Native Flipper Debugging Issue : "NO APPLICATION SELECTED"

我已成功连接设备(我看到日志并看到 React Native 元素树),但现在我在连接应用程序时遇到问题 - 我看到的是“未选择应用程序”。有什么解决办法吗?

确保您是 运行 最新版本的 Flipper(截至此消息为 0.120.0),然后:

对于Android:

  • android/gradle.properties中插入FLIPPER_VERSION变量,例如:FLIPPER_VERSION=0.120.0.
  • 运行 ./gradlew clean 在 android 目录中。

对于iOS:

  • ios/Podfile中的特定版本调用use_flipper,例如:use_flipper!({ 'Flipper' => '0.120.0' }).
  • 运行 pod 安装在 ios 目录中。

参考:https://fbflipper.com/docs/getting-started/react-native/#using-the-latest-flipper-sdk

运行 使用 Flipper 0.135.0 在 iOS 和 Android 上遇到相同的问题。按照以下步骤设法使两者都起作用。

iOS

This answer 帮我解决了这个问题。

tl;博士

brew update && brew upgrade idb-companion

另外,通过在 Podfile 中指定确切的版本(对于版本 0.135.0)

,确保安装正确的 Flipper Cocoapod
use_flipper!({ 'Flipper'=> '0.135.0' })

Android

确保 ReactNativeFlipper.java 位于正确的文件夹中,如 this example project.

例如applicationId com.domain.appName,正确的路径是

android/app/src/debug/java/com/domain/appName/ReactNativeFlipper.java

在我的项目中,这个 Java 文件位于错误的文件夹中,这导致了 Logcat 错误

java.lang.ClassNotFoundException: com.domain.appName.ReactNativeFlipper

就我而言,问题出在模拟器 OS 和 API。

我使用了以下组合并且有效:

  • 设备: Pixel 4a
  • OS: Android 12
  • API:(发布名称:S,API 级别:31,ABI:arm64-v8a,目标:Android 12

在MainApplication.java中有一行像

 initializeFlipper(this, getReactNativeHost().getReactInstanceManager());

在 onCreate() 函数中。在我的项目中,这一行被评论了。我删除了评论,运行 react-native run-android 和 flipper 连接到应用程序