繁体   English   中英

反应本机构建错误:尝试调用虚拟方法'boolean com.facebook.react.uimanager.FabricViewStateManager.hasStateWrappper()

[英]React native build error: Attempt to invoke virtual method'boolean com.facebook.react.uimanager.FabricViewStateManager.hasStateWrappper()

我以前的构建工作正常,但现在当我尝试构建时出现此错误。 我不知道如何解决这个错误。

如果有人遇到同样的问题,请帮助我。

Attempt to invoke virtual method'boolean com.facebook.react.uimanager.FabricViewStateManager.hasStateWrappper()' on a null object reference

在此处输入图像描述

通过使用adb logcat并跟踪应用程序,我能够缩小导致错误的范围。

该问题源于<Input> (来自react-native-elements )和<TextInput> (来自react-native )。 两者都会导致错误,如果我注释掉 Componenets 中的任何 Input/TextInput 元素,应用程序将正常运行。

我不太能够让它与@kangear 的响应一起工作,但它很接近。 经过大量的挖掘和测试,我能够使用android\app\build.gradle中的以下代码行让应用程序正常工作,在dependencies项部分:

implementation ("androidx.appcompat:appcompat:1.3.1") {
    version {
        strictly '1.3.1'
    }
}

我尝试只使用implementation 'androidx.appcompat:appcompat:1.3.1' ,但这也不起作用。

希望这能够节省一些时间,因为我花了很长时间才弄清楚!

我对此有同样的问题。 不要使用+

implementation "androidx.appcompat:appcompat:1.4.0-alpha01"

或者

implementation "androidx.appcompat:appcompat:+"

正确方法:(低于1.4

implementation "androidx.appcompat:appcompat:1.1.0"

见这里: https://github.com/facebook/react-native/issues/31572

更新

./gradlew -q app:dependencies > 1.txt

也许你可以看到这个:

| +--- com.github.AnJiaoDe:TabLayoutNiubility:V1.1.6 | | \--- androidx.appcompat:appcompat:+ -> 1.4.0-alpha01 (*)

第三个库内容为androidx.appcompat:appcompat:+

所以你必须是:

implementation ('com.github.AnJiaoDe:TabLayoutNiubility:V1.1.6') {
exclude group: 'androidx.appcompat', module: 'appcompat'
}

android/app/build.gradle

将以下代码粘贴到依赖项部分

implementation ("androidx.appcompat:appcompat:1.3.1") {
        version {
            strictly '1.3.1'
        }
    }

我解决了这个错误简单的方法。
1)创建新的 expo 项目expo init {yourProjectName}
No.2)您以前的项目复制所有创建文件夹和文件并复制您将安装依赖项命令。
No.3)你新建项目粘贴所有文件夹和文件并安装所有以前的依赖项。
现在你运行你的项目npm start 或 yarn start
我希望你的问题能解决。

也许您可以将react-native版本更新为0.68.2

这对我有用。

验证 Gradle 版本: 7.0.2

其他解决方案对我来说不可行。 降级到 appcompat 到 1.3.1 并不是一个好的解决方案。 而且升级到 0.68.2 也是相当费劲的。

我反而

  • 我使用的分叉 react-native 版本。
  • 进行了此处提到的更改
  • 按照 这个重新构建 ReactAndroid-release.aar
  • 将 ReactAndroid-release.aar 放在 android/app/libs

现在你可以在任何 React 原生版本上使用 Appcompat 1.4.x。 在 0.64.3 上尝试过。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM