NativeScript / NativeScript/plugins
[@nativescript/google-maps] Break app when you have a map inside a ScrollView
未關閉
還沒有人認領這個 Issue。
- 主要語言
- TypeScript
- 星號
- 206
- 分支
- 123
- 平均合併
- 2 天 1 小時
- 30 天內合併 PR
- 1
描述
When you have a map inside a scrollView, if you navigate to another page, exit the app and re-enter, when you return to the back page with the map the app breaks. Error:
System.err: An uncaught Exception occurred on "main" thread.
System.err: Calling js method onCreateView failed
System.err: Error: java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to org.nativescript.widgets.HorizontalScrollView$SavedState
System.err:
System.err: StackTrace:
System.err: onCreateView(file: src\webpack:\abll-app-next\node_modules\@nativescript\core\ui\frame\index.android.js:768:0)
System.err: at onCreateView(file: src\webpack:\abll-app-next\node_modules\@nativescript\core\ui\frame\fragment.android.js:28:0)
System.err: at com.tns.Runtime.callJSMethodNative(Native Method)
System.err: at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1302)
System.err: at com.tns.Runtime.callJSMethodImpl(Runtime.java:1188)
System.err: at com.tns.Runtime.callJSMethod(Runtime.java:1175)
System.err: at com.tns.Runtime.callJSMethod(Runtime.java:1153)
System.err: at com.tns.Runtime.callJSMethod(Runtime.java:1149)
System.err: at com.tns.FragmentClass.onCreateView(FragmentClass.java:55)
System.err: at androidx.fragment.app.Fragment.performCreateView(Fragment.java:3104)
System.err: at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:524)
System.err: at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:261)
System.err: at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1899)
System.err: at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1817)
System.err: at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1760)
System.err: at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:547)
System.err: at android.os.Handler.handleCallback(Handler.java:942)
System.err: at android.os.Handler.dispatchMessage(Handler.java:99)
System.err: at android.os.Looper.loopOnce(Looper.java:210)
System.err: at android.app.ActivityThread.main(ActivityThread.java:8109)
System.err: at java.lang.reflect.Method.invoke(Native Method)
System.err: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:559)
System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
System.err: Caused by: java.lang.ClassCastException: android.view.AbsSavedState$1 cannot be cast to org.nativescript.widgets.HorizontalScrollView$SavedState
System.err: at org.nativescript.widgets.VerticalScrollView.onRestoreInstanceState(VerticalScrollView.java:235)
System.err: at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4012)
System.err: at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4018)
System.err: at android.view.ViewGroup.dispatchRestoreInstanceState(ViewGroup.java:4018)
System.err: at android.view.View.restoreHierarchyState(View.java:21650)
Playback repository: https://github.com/vallemar/error-google-maps-on-ScrollView
Video:
貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
研究方向
首先,使用連結的回放儲存庫重現崩潰,並檢查堆疊追蹤中顯示的 Android 還原路徑,包括 frame/index.android.js、fragment.android.js 和 VerticalScrollView.onRestoreInstanceState。將 map-in-ScrollView 導覽和重新進入應用程式的流程與回報的 ClassCastException 進行比較。完成標準是返回頁面時,應用程式在檢視狀態還原期間不再崩潰。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- android, typescript
- 領域
- mobile
- Issue 類型
- 缺陷
- 難度
- 4/5
- 預估耗時
- 3-5 天
- 活躍度
- 停滯
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100