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

Ash*_*rma 50 javascript textinput reactjs react-native

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

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

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

在此输入图像描述

Ken*_*eit 104

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

该问题源于<Input>(from react-native-elements) 和<TextInput>(from react-native)。两者都会导致错误,并且如果我注释掉组件中的任何输入/文本输入元素,应用程序将运行而不会出现错误。

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

implementation ("androidx.appcompat:appcompat:1.3.1") {
    version {
        strictly '1.3.1'
    }
}
Run Code Online (Sandbox Code Playgroud)

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

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

  • 对于添加 stripe 以响应本机后到达这里的任何人来说,它是 `implementation(project(':stripe_stripe-react-native')) { except module: 'appcompat' }` 以及上面的内容。 (25认同)

kan*_*ear 15

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

implementation "androidx.appcompat:appcompat:1.4.0-alpha01"
Run Code Online (Sandbox Code Playgroud)

或者

implementation "androidx.appcompat:appcompat:+"
Run Code Online (Sandbox Code Playgroud)

正确方法:(低于1.4

implementation "androidx.appcompat:appcompat:1.1.0"
Run Code Online (Sandbox Code Playgroud)

请参阅此处: https: //github.com/facebook/react-native/issues/31572

更新

./gradlew -q app:dependencies > 1.txt
Run Code Online (Sandbox Code Playgroud)

也许你可以看到这个:

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

第三库内容aandroidx.appcompat:appcompat:+

所以你一定是:

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

  • 对我有用!在我的例子中,模块位于一个项目中,因此: ```implementation(project(':project-name')) { except module: 'appcompat' } ``` 谢谢! (2认同)

小智 8

android/app/build.gradle

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

implementation ("androidx.appcompat:appcompat:1.3.1") {
        version {
            strictly '1.3.1'
        }
    }
Run Code Online (Sandbox Code Playgroud)