React原生建置错误:尝试调用虚拟方法的布尔值com.facebook.react.uimanager.FabricViewStateManager. hasStateWrapper()

kzmpq1sx  于 2022-11-17  发布在  React
关注(0)|答案(6)|浏览(220)

我以前的版本工作正常,但现在当我尝试进行版本时出现此错误。我不知道如何解决此错误。
如果有人面临同样的问题,请帮助我解决。

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

rekjcdws

rekjcdws1#

通过使用adb logcat和跟踪应用程序,我能够缩小导致错误的原因。
问题源于<Input>(来自react-native-elements)和<TextInput>(来自react-native)。这两个问题都将导致错误,如果我注解掉组件中的任何Input/TextInput元素,应用程序将正常运行。
我无法让它与@kangear的响应一起工作,但已经很接近了。经过大量的挖掘和测试,我能够让应用程序在dependencies部分的android\app\build.gradle中的以下代码行正常工作:

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

我试着只使用implementation 'androidx.appcompat:appcompat:1.3.1',但那也不起作用。
希望这能为某人节省一些时间,因为我花了相当长的时间才弄清楚!

brccelvz

brccelvz2#

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

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 (*)

第三个库内容a androidx.appcompat:appcompat:+
因此您必须:

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

anhgbhbe3#

Android/应用程序/构建版本.gradle
将以下代码粘贴到依赖项部分

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

q8l4jmvw4#

也许您可以将react-native版本更新为0.68.2
这对我很有效。
验证Gradle版本:7.0.2

ddarikpa

ddarikpa5#

我解决这个错误简单的方法。

No.1)创建新Expo项目Expo初始化{您的项目名称}
No.2)您以前的项目复制所有您创建的文件夹和文件,并复制您将安装依赖项命令。
**No.3)**您的新项目粘贴所有文件夹和文件,并安装所有以前的依赖项。

现在运行项目npm start或Yarn开始
我希望你问题解决了。

2o7dmzc5

2o7dmzc56#

**更新:**此解决方案适用于那些无法负担Appcompat 1.3.1的用户。

其他的解决方案对我来说是不可行的。将appcompat降级到1.3.1不是一个好的解决方案。升级到0.68.2也是一个很大的努力。
我反而

  • 我所使用的原始版本。
  • 进行了上述更改here
  • 按照this重新构建ReactAndroid-release.aar
  • 将ReactAndroid-release.aar放置在android/app/libs中

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

相关问题