簡體   English   中英

在 Flutter 中調用 MethodChannel 時,Android 中沒有虛擬方法 getSavedStateRegistry()?

[英]Getting No virtual method getSavedStateRegistry() in Android when calling MethodChannel in Flutter?

我正在用 flutter 開發一個應用程序。 我正在嘗試從 flutter 調用方法通道到 Android

var accountToken=await platform.invokeMethod("ccAvenuePayment", {"params": jsonEncode(payment.toJson())});

我在日志中崩潰並且應用程序關閉

java.lang.NoSuchMethodError: No virtual method getSavedStateRegistry()Landroidx/savedstate/SavedStateRegistry; in class Landroidx/appcompat/app/AppCompatActivity; or its super classes (declaration of 'androidx.appcompat.app.AppCompatActivity' appears in /data/app/~~kpJG3PwxxqPGEm-YvsB4dA==/ae.ehail.rider_ios2-wdmI__mnIKJeTtbATI_naw==/base.apk)
E/AndroidRuntime(29070):    at androidx.appcompat.app.AppCompatActivity.initDelegate(AppCompatActivity.java:116)
E/AndroidRuntime(29070):    at androidx.appcompat.app.AppCompatActivity.<init>(AppCompatActivity.java:95)
E/AndroidRuntime(29070):    at mumbai.dev.testapp.MainActivity.<init>(MainActivity.java:34)
E/AndroidRuntime(29070):    at java.lang.Class.newInstance(Native Method)
E/AndroidRuntime(29070):    at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
E/AndroidRuntime(29070):    at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:45)
E/AndroidRuntime(29070):    at android.app.Instrumentation.newActivity(Instrumentation.java:1253)
E/AndroidRuntime(29070):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3353)
E/AndroidRuntime(29070):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
E/AndroidRuntime(29070):    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
E/AndroidRuntime(29070):    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
E/AndroidRuntime(29070):    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
E/AndroidRuntime(29070):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
E/AndroidRuntime(29070):    at android.os.Handler.dispatchMessage(Handler.java:106)
E/AndroidRuntime(29070):    at android.os.Looper.loop(Looper.java:223)
E/AndroidRuntime(29070):    at android.app.ActivityThread.main(ActivityThread.java:7656)
E/AndroidRuntime(29070):    at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(29070):    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
E/AndroidRuntime(29070):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
I/Process (29070): Sending signal. PID: 29070 SIG: 9

我想不通這個問題。 根本沒有調用方法通道。

我搜索了互聯網,但可以找到這個錯誤No virtual method getSavedStateRegistry()

這是我的代碼

https://gist.github.com/RageshAntony/93f77677cb69720616254fc710dd7832

請幫我

就我而言, app/build.gradle的配置設置為使用舊版本的androidx.fragment:fragment (1.0.0),而SavedStateRegistry是在 1.4.0 中添加的。 我正在重溫一個舊項目,所以我猜新版本的 flutter 需要這個新版本的 androidx.fragment。

allprojects {
  configurations.all {
    resolutionStrategy.force "androidx.fragment:fragment:1.0.0" //deleteMe

我刪除了該行以解決此問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM