React Native Flipper调试问题: "未选择应用程序"

26

在此输入图片描述

我已成功连接了设备(可以看到日志和React Native元素树),但现在连接应用程序时出现了问题,显示“没有选择应用程序”。有什么解决方法吗?

9个回答

19

enter image description here

前往设置并检查您的Sdk路径是否正确


1
要找到您的SDK路径,请参考此答案https://stackoverflow.com/questions/34532063/finding-android-sdk-on-mac-and-adding-to-path。 - undefined

14

在iOS和Android上都遇到了Flipper 0.135.0的相同问题。通过按照以下步骤成功解决了这两个问题。

iOS

这个答案对我解决了这个问题。

tl;dr

brew update && brew upgrade idb-companion

同时确保您正在安装正确的Flipper Cocoapod,通过在Podfile中指定确切的版本(0.135.0)来实现。

use_flipper!({ 'Flipper'=> '0.135.0' })

Android

请确保ReactNativeFlipper.java在正确的文件夹中,例如在这个示例项目中。

如果应用程序的ID是com.domain.appName,则正确的路径为:

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

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

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


我在哪里可以找到应用程序ID? - AlexUA
1
@Olek 你可以在_app/build.gradle_文件中找到你的应用程序ID。应用程序ID - NiFi
你仍然可以尝试将该Java文件移动到正确的文件夹中。但是可能存在完全不同的问题。 - NiFi
1
非常感谢您,先生!发现了一个问题:我的应用程序ID名称结构化为domain.developerName.appName,我只需要将ReactNativeFlipper.java移动到android/app/src/debug/java/com/domain/developerName/appName/ReactNativeFlipper.java即可。 - AlexUA
这对我没用。错误消息显示它正在寻找Java类com.domain.ReactNativeFlipper,尽管我的应用程序ID是io.domain。我尝试将.../debug/java/com/domain移动到.../debug/java/io/domain。也尝试了.../debug/java/com/io/domain,如@AlexUA的解决方案所述。但它总是显示一个错误,寻找com.domain.ReactNativeFlipper。猜测NiFi是正确的,其他地方出了问题。 - chetstone

7

确保您正在运行最新版本的Flipper(此消息的版本为0.120.0),然后执行以下操作:

对于Android:

  • android/gradle.properties中增加FLIPPER_VERSION变量,例如:FLIPPER_VERSION=0.120.0
  • 在android目录下运行./gradlew clean

对于iOS:

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

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


这就是我所做的,但出于某种原因,情况没有改变。 - AlexUA
你使用的React Native版本、Flipper版本和Flipper Kit版本是什么?@Olek - micnguyen
个人而言,我正在使用RN 0.66.3和Flipper 0.122.0 @micnguyen。 - AlexUA

2

我的问题出在模拟器的操作系统和API上。

我使用了以下组合,它可以正常工作:

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

1

我也遇到了这个问题,我没有看到Android模拟器和要选择的应用程序,但是iOS没有任何配置就可以正常工作。

我的设置问题是,在Flipper设置中,Android SDK的路径不正确。在更新路径并重新启动Flipper后,它自动检测到了模拟器和应用程序。 希望这能帮到你。


1

我能够在Android上解决这个问题,打开ReactNativeFlipper.java文件。

在第一行package com.yourappname;中将其更改为AndroidManifest.xml内的确切包名。


0
在MainApplication.java文件中有一行代码,类似于:
 initializeFlipper(this, getReactNativeHost().getReactInstanceManager());

在 onCreate() 函数内。在我的项目中,这行代码被注释了。我取消了注释并运行了 react-native run-android 命令,然后 Flipper 连接到了应用程序。


0
对于macOS,检查是否存在/usr/local/bin/idb-companion 如果brew链接到另一个路径,请创建链接。

1
你的回答目前写得不够清楚。请编辑并添加更多细节,以帮助其他人理解这如何回答所提出的问题。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - undefined

0
以下对我起作用:
  1. 正确设置Android SDK的路径
  2. 确保设置了watchman
  3. 确保Setup Doctor没有提示任何问题
在卸载设备上的应用程序、关闭Metro Bundler终端,并运行yarn android之后,以上方法都不能解决问题,然后"Fipper"中的"NO APPLICATION SELECTED"错误就消失了。 桌面FLIPPER_VERSION=0.201.0 React Native Android FLIPPER_VERSION=0.125.0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接