簡體   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