react / react/react-native

[android] Unable to add window -- token null is not valid; is your activity running? in Debug

未关闭
#41,185 6 条评论 1 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

Issue: Author Provided Repro Needs: Triage :mag: Platform: Android
主要语言
C++
星标
127k
派生
25.3k
平均合并
1 天 23 小时
30 天内合并 PR
4

描述

Description

When starting a project in debug mode, android application crashes with an error
FATAL EXCEPTION: main Process: com.myproject, PID: 18039 android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running? at android.view.ViewRootImpl.setView(ViewRootImpl.java:1312) at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:405) at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:148) at android.widget.PopupWindow.invokePopup(PopupWindow.java:1581) at android.widget.PopupWindow.showAtLocation(PopupWindow.java:1347) at android.widget.PopupWindow.showAtLocation(PopupWindow.java:1313) at com.facebook.react.devsupport.DefaultDevLoadingViewImplementation.showInternal(DefaultDevLoadingViewImplementation.java:131) at com.facebook.react.devsupport.DefaultDevLoadingViewImplementation.-$$Nest$mshowInternal(Unknown Source:0) at com.facebook.react.devsupport.DefaultDevLoadingViewImplementation$1.run(DefaultDevLoadingViewImplementation.java:56) at android.os.Handler.handleCallback(Handler.java:942) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loopOnce(Looper.java:201) at android.os.Looper.loop(Looper.java:288) at android.app.ActivityThread.main(ActivityThread.java:7872) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)

React Native Version

0.72.6

Output of npx react-native info

System:
OS: macOS 14.0
CPU: (8) arm64 Apple M1
Memory: 82.39 MB / 16.00 GB
Shell:
version: "5.9"
path: /bin/zsh
Binaries:
Node:
version: 16.17.0
path: /usr/local/bin/node
Yarn:
version: 1.22.19
path: /opt/homebrew/bin/yarn
npm: Not Found
Watchman: Not Found
Managers:
CocoaPods:
version: 1.12.1
path: /usr/local/bin/pod
SDKs:
iOS SDK:
Platforms:
- DriverKit 23.0
- iOS 17.0
- macOS 14.0
- tvOS 17.0
- watchOS 10.0
Android SDK: Not Found
IDEs:
Android Studio: Not Found
Xcode:
version: 15.0.1/15A507
path: /usr/bin/xcodebuild
Languages:
Java:
version: 18.0.2
path: /usr/bin/javac
Ruby:
version: 2.6.10
path: /usr/bin/ruby
npmPackages:
"@react-native-community/cli": Not Found
react:
installed: 18.2.0
wanted: 18.2.0
react-native:
installed: 0.72.6
wanted: 0.72.6
react-native-macos: Not Found
npmGlobalPackages:
"react-native": Not Found
Android:
hermesEnabled: true
newArchEnabled: false
iOS:
hermesEnabled: true
newArchEnabled: false

Steps to reproduce
  1. Init project
  2. Implement this code to MainActivity.kt
val CUSTOM_EXTRA_NAME = "RELAUNCHED"

override fun onCreate(savedInstanceState: Bundle?) {
        if (!intent.getBooleanExtra(CUSTOM_EXTRA_NAME, false)) {
            this.finish()
            intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
            intent.putExtra(CUSTOM_EXTRA_NAME, true);
            startActivity(intent);
        }
        super.onCreate(null)
    }

  1. Got error
Snack, screenshot, or link to a repository

Link to repo
image

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

从链接的 repository 中 MainActivity.kt 的复现开始,并使用 React Native 0.72.6 执行一次 debug 启动。跟踪报告所述的路径经过 DefaultDevLoadingViewImplementation 的过程,并将其与自定义的 activity 重启序列进行比较;完成的标准是确定一个范围明确且可复现的 framework 问题,或记录该报告为何没有指出 framework 变更。

由索引模型根据 Issue 内容生成。

评估

技术栈
android, kotlin, react-native
领域
mobile
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
需要澄清
新手友好度
20/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。