tabris-plugin-maps icon indicating copy to clipboard operation
tabris-plugin-maps copied to clipboard

Operating the map before appending it to the widget tree leads to crash

Open cpetrov opened this issue 7 years ago • 0 comments

Problem description

The app crashes when calling map methods before the map has been added to the widget tree.

logcat output:

11-28 12:40:29.488  4951  4951 E FragmentManager: No view found for id 0x6 (unknown) for fragment SupportMapFragment{63c32c2 #0 id=0x6}
11-28 12:40:29.488  4951  4951 E FragmentManager: Activity state:
11-28 12:40:29.488  4951  4951 D FragmentManager:   Local FragmentActivity 553e549 State:
11-28 12:40:29.489  4951  4951 D FragmentManager:     mCreated=truemResumed=false mStopped=false mReallyStopped=false
11-28 12:40:29.489  4951  4951 D FragmentManager:     mLoadersStarted=false
11-28 12:40:29.489  4951  4951 D FragmentManager:   Active Fragments in 324e8d3:
11-28 12:40:29.489  4951  4951 D FragmentManager:     #0: SupportMapFragment{63c32c2 #0 id=0x6}
11-28 12:40:29.489  4951  4951 D FragmentManager:       mFragmentId=#6 mContainerId=#6 mTag=null
11-28 12:40:29.490  4951  4951 D FragmentManager:       mState=1 mIndex=0 mWho=android:fragment:0 mBackStackNesting=0
11-28 12:40:29.490  4951  4951 D FragmentManager:       mAdded=true mRemoving=false mFromLayout=false mInLayout=false
11-28 12:40:29.491  4951  4951 D FragmentManager:       mHidden=false mDetached=false mMenuVisible=true mHasMenu=false
11-28 12:40:29.491  4951  4951 D FragmentManager:       mRetainInstance=false mRetaining=false mUserVisibleHint=true
11-28 12:40:29.491  4951  4951 D FragmentManager:       mFragmentManager=FragmentManager{324e8d3 in HostCallbacks{bd99c10}}
11-28 12:40:29.491  4951  4951 D FragmentManager:       mHost=android.support.v4.app.FragmentActivity$HostCallbacks@bd99c10
11-28 12:40:29.491  4951  4951 D FragmentManager:   Added Fragments:
11-28 12:40:29.491  4951  4951 D FragmentManager:     #0: SupportMapFragment{63c32c2 #0 id=0x6}
11-28 12:40:29.491  4951  4951 D FragmentManager:   FragmentManager misc state:
11-28 12:40:29.491  4951  4951 D FragmentManager:     mHost=android.support.v4.app.FragmentActivity$HostCallbacks@bd99c10
11-28 12:40:29.492  4951  4951 D FragmentManager:     mContainer=android.support.v4.app.FragmentActivity$HostCallbacks@bd99c10
11-28 12:40:29.492  4951  4951 D FragmentManager:     mCurState=2 mStateSaved=false mDestroyed=false
11-28 12:40:29.492  4951  4951 D FragmentManager:   View Hierarchy:
11-28 12:40:29.492  4951  4951 D FragmentManager:     com.android.internal.policy.DecorView{d948309 V.E..... ... 0,0-0,0}
11-28 12:40:29.492  4951  4951 D FragmentManager:       android.widget.LinearLayout{a1eb90e V.E..... ... 0,0-0,0}
11-28 12:40:29.493  4951  4951 D FragmentManager:         android.view.ViewStub{a4b3f2f G.E..... ... 0,0-0,0 #1020186 android:id/action_mode_bar_stub}
11-28 12:40:29.493  4951  4951 D FragmentManager:         android.widget.FrameLayout{ca4693c V.E..... ... 0,0-0,0}
11-28 12:40:29.493  4951  4951 D FragmentManager:           android.support.v7.widget.FitWindowsFrameLayout{a7946c5 V.E..... ... 0,0-0,0 #7f0e0078 app:id/action_bar_root}
11-28 12:40:29.494  4951  4951 D FragmentManager:             android.support.v7.widget.ContentFrameLayout{a91581a V.E..... ... 0,0-0,0 #1020002 android:id/content}
11-28 12:40:29.495  4951  4951 D FragmentManager:               com.eclipsesource.tabris.android.internal.toolkit.view.TabrisDrawerLayout{f933747 VFE..... ... 0,0-0,0 #7f0e00c6 app:id/tabris_drawer_layout}
11-28 12:40:29.495  4951  4951 D FragmentManager:                 com.eclipsesource.tabris.android.internal.toolkit.view.Composite{f6c789d VFE..... ... 0,0-0,0}
11-28 12:40:29.495  4951  4951 D FragmentManager:                 org.apache.cordova.engine.SystemWebView{6d69f4b GFEDH.C. ... 0,0-0,0}
11-28 12:40:29.496  4951  4951 D FragmentManager:                 com.eclipsesource.tabris.android.internal.toolkit.view.Composite{61d0199 VFE...C. ... 0,0-0,0 #7f0e00c7 app:id/tabris_app_drawer}
11-28 12:40:29.496  4951  4951 D FragmentManager:                 com.eclipsesource.tabris.android.internal.toolkit.DeveloperConsoleView{cecdd28 V.E..... ... 0,0-0,0 #7f0e00c8 app:id/tabris_developer_console}
11-28 12:40:29.496  4951  4951 D FragmentManager:                   android.support.v7.widget.Toolbar{12c8a41 V.E..... ... 0,0-0,0 #7f0e009f app:id/developer_console_toolbar}
11-28 12:40:29.497  4951  4951 D FragmentManager:                     com.eclipsesource.tabris.android.internal.toolkit.DeveloperConsoleUrlEditText{15cdbe6 VFED..CL ... 0,0-0,0 #7f0e00a0 app:id/developer_console_url_edit_text}
11-28 12:40:29.497  4951  4951 D FragmentManager:                     android.support.v7.widget.ActionMenuView{96de527 V.E..... ... 0,0-0,0}
11-28 12:40:29.497  4951  4951 D FragmentManager:                       android.support.v7.view.menu.ActionMenuItemView{2c6a3d4 VFED..CL ... 0,0-0,0 #7f0e00cc app:id/developer_console_action_restart}
11-28 12:40:29.497  4951  4951 D FragmentManager:                       android.support.v7.widget.ActionMenuPresenter$OverflowMenuButton{e76897d VFED..CL ... 0,0-0,0}
11-28 12:40:29.497  4951  4951 D FragmentManager:                   android.support.v7.widget.AppCompatEditText{a0ad072 VFED..CL ... 0,0-0,0 #7f0e00a1 app:id/developer_console_command_edit_text}
11-28 12:40:29.497  4951  4951 D FragmentManager:                   android.view.View{c49acc3 V.ED.... ... 0,0-0,0 #7f0e00a2 app:id/developer_console_input_separator}
11-28 12:40:29.498  4951  4951 D FragmentManager:                   android.support.v7.widget.RecyclerView{fd42940 VFED.V.. ... 0,0-0,0 #7f0e00a3 app:id/developer_console_log}
11-28 12:40:29.498  4951  4951 D FragmentManager:             android.support.v7.widget.ViewStubCompat{9674079 G.E..... ... 0,0-0,0 #7f0e0079 app:id/action_mode_bar_stub}
11-28 12:40:29.498  4951  4951 D AndroidRuntime: Shutting down VM
11-28 12:40:29.500  4951  4951 E AndroidRuntime: FATAL EXCEPTION: main

Expected behavior

Calling map methods before adding it to the widget tree should not lead to an app crash.

Environment

  • Tabris.js version: 2.x-nightly
  • Device: emulator
  • OS: Android 8

Code snippet

new esmaps.Map({
  left: 0, right: 0, top: 0, bottom: 0
}).on('ready', ({target: map}) => {
  console.log('ready')
  map.camera = {position: [48.8644458, 2.3589976]};
});

cpetrov avatar Nov 28 '17 11:11 cpetrov