ProgressNS / nativescript-ui-feedback

This repository is used for customer feedback regarding Telerik UI for NativeScript. The issues system here is used by customers who want to submit their feature requests or vote for existing ones.
Other
115 stars 21 forks source link

[RadListView] NativeScript 6.5 Crash #1377

Open nericode opened 4 years ago

nericode commented 4 years ago

Tell us about the problem

When load my app, only crash for RadListView,

Which platform(s) does your issue occur on?

Android

Please tell us how to recreate the issue in as much detail as possible.

  1. Update NS 6.4.1
  2. Now you have version 6.5.0
  3. Open proyect with RadListView and crash

Please, provide the details below:

An uncaught Exception occurred on "main" thread.
Inconsistency detected. Invalid item position 2(offset:2).state:3 com.telerik.widget.list.RadListView{c860561 VFED..... ......ID 0,0-720,1024 #a}, adapter:com.telerik.widget.list.ListViewWrapperAdapter@3f0fac3, layout:androidx.recyclerview.widget.LinearLayoutManager@f72a547, context:com.tns.NativeScriptActivity@33f2e67

StackTrace:
java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 2(offset:2).state:3 com.telerik.widget.list.RadListView{c860561 VFED..... ......ID 0,0-720,1024 #a}, adapter:com.telerik.widget.list.ListViewWrapperAdapter@3f0fac3, layout:androidx.recyclerview.widget.LinearLayoutManager@f72a547, context:com.tns.NativeScriptActivity@33f2e67
    at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6183)
    at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118)
    at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114)
    at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303)
    at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627)
    at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
    at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665)
    at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134)
    at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:3851)
    at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4404)
    at com.telerik.widget.list.RadListView.onLayout(RadListView.java:600)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at org.nativescript.widgets.CommonLayoutParams.layoutChild(CommonLayoutParams.java:222)
    at org.nativescript.widgets.GridLayout.onLayout(GridLayout.java:354)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at org.nativescript.widgets.CommonLayoutParams.layoutChild(CommonLayoutParams.java:222)
    at org.nativescript.widgets.GridLayout.onLayout(GridLayout.java:354)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at org.nativescript.widgets.CommonLayoutParams.layoutChild(CommonLayoutParams.java:222)
    at org.nativescript.widgets.ContentLayout.onLayout(ContentLayout.java:73)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1812)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1656)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1565)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1812)
    at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1656)
    at android.widget.LinearLayout.onLayout(LinearLayout.java:1565)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
    at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
    at com.android.internal.policy.DecorView.onLayout(DecorView.java:753)
    at android.view.View.layout(View.java:20672)
    at android.view.ViewGroup.layout(ViewGroup.java:6194)
    at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2792)
    at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2319)
    at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1460)
    at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7183)
    at android.view.Choreographer$CallbackRecord.run(Choreographer.java:949)
    at android.view.Choreographer.doCallbacks(Choreographer.java:761)
    at android.view.Choreographer.doFrame(Choreographer.java:696)
    at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:935)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
NickIliev commented 4 years ago

@NeriCodec what is the version of nativescript-ui-listview? Please provide the content of your package.json.

nericode commented 4 years ago

@NickIliev

{
  "nativescript": {
    "id": "",
    "tns-ios": {
      "version": ""
    },
    "tns-android": {
      "version": ""
    }
  },
  "description": "NativeScript Application",
  "license": "SEE LICENSE IN <your-license-filename>",
  "repository": "<fill-your-repository-here>",
  "scripts": {
    "lint": "tslint \"src/**/*.ts\""
  },
  "dependencies": {
    "@angular/animations": "~8.2.0",
    "@angular/common": "~8.2.0",
    "@angular/compiler": "~8.2.0",
    "@angular/core": "~8.2.0",
    "@angular/forms": "~8.2.0",
    "@angular/platform-browser": "~8.2.0",
    "@angular/platform-browser-dynamic": "~8.2.0",
    "@angular/router": "~8.2.0",
    "@nativescript/theme": "~2.2.1",
    "@nstudio/nativescript-checkbox": "^1.0.0",
    "@nstudio/nativescript-loading-indicator": "^3.0.3",
    "nativescript-angular": "~8.20.3",
    "nativescript-datetimepicker": "^1.2.2",
    "nativescript-geocoding": "^2.0.1",
    "nativescript-image-cache-it": "^5.0.0-beta.6",
    "nativescript-iqkeyboardmanager": "^1.5.1",
    "nativescript-material-cardview": "^2.5.4",
    "nativescript-material-ripple": "^3.1.4",
    "nativescript-phone": "^1.4.1",
    "nativescript-secure-storage": "^2.6.0",
    "nativescript-ui-listview": "^8.0.1",
    "nativescript-ui-sidedrawer": "~8.0.0",
    "reflect-metadata": "~0.1.12",
    "rxjs": "^6.4.0",
    "tns-core-modules": "^6.4.0",
    "validator": "^12.2.0",
    "zone.js": "~0.9.1"
  },
  "devDependencies": {
    "@angular/compiler-cli": "~8.2.0",
    "@ngtools/webpack": "~8.2.0",
    "codelyzer": "~4.5.0",
    "nativescript-dev-webpack": "~1.4.0",
    "node-sass": "^4.7.1",
    "tslint": "~5.19.0",
    "typescript": "~3.5.3"
  },
  "gitHead": "fa98f785df3fba482e5e2a0c76f4be1fa6dc7a14",
  "readme": ""
}
NickIliev commented 4 years ago

@NeriCodec we are testing version 8.0.1 with the latest CLI and core modules but we are not seeing any issues. TAre you by chance using re-order functionality? If so, could you try to disable it and test without this feature (could be related to this thread)

jessorlisa commented 4 years ago

With "nativescript-ui-listview": "^8.0.1" in package.json running tns update will most likely install nativescript-ui-listview in version 8.1.0.

@NeriCodec Could you please check via npm list -depth=0?

I am having the same issue but only with nativescript-ui-listview 8.1.0.

nericode commented 4 years ago

@jessorlisa I've already tried 8.1.0 and it's the same problem

@NickIliev I don't use the re-order, what I'm using is the ListViewGridLayout

NickIliev commented 4 years ago

@NeriCodec we have this test app (and the same for Angular) and both are working as expected including when using ListViewGridLaoyut. So there is probably some other factor that is causing the issue.

Consider providing a test project that can reproduce the issue. Also, let us know if the issue appears only on a specific API level.

PabloPG commented 4 years ago

@NickIliev i have same problem, but i'm using radlistview with async pipe.

@edit: Using Android API 29 TNS 6.5: Got error TNS 6.4.1: No error

{
    "nativescript": {
        "id": "",
        "tns-ios": {
            "version": "6.5.0"
        },
        "tns-android": {
            "version": "6.5.0"
        }
    },
    "description": "NativeScript Application",
    "license": "SEE LICENSE IN <your-license-filename>",
    "repository": "",
    "scripts": {
        "lint": "tslint \"src/**/*.ts\""
    },
    "dependencies": {
        "@angular/animations": "~8.2.0",
        "@angular/common": "~8.2.0",
        "@angular/compiler": "~8.2.0",
        "@angular/core": "~8.2.0",
        "@angular/forms": "~8.2.0",
        "@angular/platform-browser": "~8.2.0",
        "@angular/platform-browser-dynamic": "~8.2.0",
        "@angular/router": "~8.2.0",
        "@nativescript/theme": "~2.3.3",
        "nativescript-angular": "~8.21.0",
        "nativescript-app-sync": "^2.0.0",
        "nativescript-background-http": "^4.2.1",
        "nativescript-camera": "^4.5.0",
        "nativescript-drawingpad": "^3.1.0",
        "nativescript-fancyalert": "^3.0.9",
        "nativescript-image-swipe": "^5.0.1",
        "nativescript-local-notifications": "^4.2.1",
        "nativescript-material-textfield": "^3.1.15",
        "nativescript-menu": "^1.1.3",
        "nativescript-plugin-firebase": "^10.5.0",
        "nativescript-ui-calendar": "^6.1.0",
        "nativescript-ui-listview": "^8.1.0",
        "nativescript-ui-sidedrawer": "~8.0.0",
        "nativescript-webview-interface": "^1.4.3",
        "reflect-metadata": "~0.1.12",
        "rxjs": "^6.4.0",
        "tns-core-modules": "~6.5.0",
        "zone.js": "~0.9.1"
    },
    "devDependencies": {
        "@angular/compiler-cli": "~8.2.0",
        "@ngtools/webpack": "~8.2.0",
        "codelyzer": "~4.5.0",
        "nativescript-dev-webpack": "~1.5.1",
        "node-sass": "^4.7.1",
        "tns-platform-declarations": "^6.5.0",
        "tslint": "~5.19.0",
        "typescript": "~3.5.3"
    },
    "gitHead": "2250137db8c1e0bd0eb543e8e4563cb71480c00d",
    "readme": "NativeScript Application"
}

Only get NSMutableArray in version 8.1.0, and i'm using android.

ERROR  ERROR ReferenceError: NSMutableArray is not defined

Error:

ERROR  ERROR Error: java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling com.telerik.widget.list.RadListView{9fd1ab5 VFED..... ......I. 0,0-0,0 #c}, adapter:com.telerik.widget.list.ListViewWrapperAdapter@1911d76, layout:androidx.recyclerview.widget.LinearLayoutManager@f46ecbb, context:com.tns.NativeScriptActivity@e6514cc 
System.err: Inconsistency detected. Invalid item position 1(offset:1).state:2 com.telerik.widget.list.RadListView{9fd1ab5 VFED..... ......I. 0,0-0,0 #c}, adapter:com.telerik.widget.list.ListViewWrapperAdapter@1911d76, layout:androidx.recyclerview.widget.LinearLayoutManager@f46ecbb, context:com.tns.NativeScriptActivity@e6514cc
System.err:
System.err: StackTrace:
System.err: java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 1(offset:1).state:2 com.telerik.widget.list.RadListView{9fd1ab5 VFED..... ......I. 0,0-0,0 #c}, adapter:com.telerik.widget.list.ListViewWrapperAdapter@1911d76, layout:androidx.recyclerview.widget.LinearLayoutManager@f46ecbb, context:com.tns.NativeScriptActivity@e6514cc
System.err:     at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6183)
System.err:     at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118)
System.err:     at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114)
System.err:     at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303)
System.err:     at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627)
System.err:     at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587)
System.err:     at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665)
System.err:     at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134)
System.err:     at androidx.recyclerview.widget.RecyclerView.onMeasure(RecyclerView.java:3540)
System.err:     at com.telerik.widget.list.RadListView.onMeasure(RadListView.java:609)
System.err:     at android.view.View.measure(View.java:24530)
System.err:     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6828)
System.err:     at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
System.err:     at android.view.View.measure(View.java:24530)
System.err:     at org.nativescript.widgets.CommonLayoutParams.measureChild(CommonLayoutParams.java:262)
System.err:     at org.nativescript.widgets.StackLayout.onMeasure(StackLayout.java:87)
System.err:     at android.view.View.measure(View.java:24530)
System.err:     at org.nativescript.widgets.CommonLayoutParams.measureChild(CommonLayoutParams.java:262)
System.err:     at org.nativescript.widgets.MeasureHelper.measureChildFixedColumnsAndRows(GridLayout.java:1056)
System.err:     at org.nativescript.widgets.MeasureHelper.measure(GridLayout.java:866)
System.err:     at org.nativescript.widgets.GridLayout.onMeasure(GridLayout.java:280)
System.err:     at android.view.View.measure(View.java:24530)
System.err:     at org.nativescript.widgets.CommonLayoutParams.measureChild(CommonLayoutParams.java:262)
System.err:     at org.nativescript.widgets.StackLayout.onMeasure(StackLayout.java:87)
System.err:     at android.view.View.measure(View.java:24530)
System.err:     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6828)
System.err:     at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
System.err:     at android.view.View.measure(View.java:24530)
System.err:     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6828)
System.err:     at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
System.err:     at android.view.View.measure(View.java:24530)
System.err:     at org.nativescript.widgets.CommonLayoutParams.measureChild(CommonLayoutParams.java:262)
System.err:     at org.nativescript.widgets.MeasureHelper.measureChildFixedColumnsAndRows(GridLayout.java:1056)
System.err:     at org.nativescript.widgets.MeasureHelper.measure(GridLayout.java:866)
System.err:     at org.nativescript.widgets.GridLayout.onMeasure(GridLayout.java:280)
System.err:     at android.view.View.measure(View.java:24530)
System.err:     at org.nativescript.widgets.CommonLayoutParams.measureChild(CommonLayoutParams.java:262)
System.err:     at org.nativescript.widgets.ContentLayout.onMeasure(ContentLayout.java:32)
System.err:     at android.view.View.measure(View.java:24530)
System.err:     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6828)
System.err:     at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
System.err:     at android.view.View.measure(View.java:24530)
System.err:     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6828)
System.err:     at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
System.err:     at android.view.View.measure(View.java:24530)
System.err:     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6828)
System.err:     at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
System.err:     at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:143)
System.err:     at android.view.View.measure(View.java:24530)
System.err:     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6828)
System.err:     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
System.err:     at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
System.err:     at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
System.err:     at android.view.View.measure(View.java:24530)
System.err:     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6828)
System.err:     at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
System.err:     at android.view.View.measure(View.java:24530)
System.err:     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6828)
System.err:     at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1552)
System.err:     at android.widget.LinearLayout.measureVertical(LinearLayout.java:842)
System.err:     at android.widget.LinearLayout.onMeasure(LinearLayout.java:721)
System.err:     at android.view.View.measure(View.java:24530)
System.err:     at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6828)
System.err:     at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)
System.err:     at com.android.internal.policy.DecorView.onMeasure(DecorView.java:742)
System.err:     at android.view.View.measure(View.java:24530)
System.err:     at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:3006)
System.err:     at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1833)
System.err:     at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2122)
System.err:     at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1721)
System.err:     at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7598)
System.err:     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:966)
System.err:     at android.view.Choreographer.doCallbacks(Choreographer.java:790)
System.err:     at android.view.Choreographer.doFrame(Choreographer.java:725)
System.err:     at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:951)
System.err:     at android.os.Handler.handleCallback(Handler.java:883)
System.err:     at android.os.Handler.dispatchMessage(Handler.java:100)
System.err:     at android.os.Looper.loop(Looper.java:214)
System.err:     at android.app.ActivityThread.main(ActivityThread.java:7356)
System.err:     at java.lang.reflect.Method.invoke(Native Method)
System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
NickIliev commented 4 years ago

@NeriCodec @jessorlisa @PabloPG can you guys test the fix that is now included in the next tag

You could install the next tag as follows:

npm i nativescript-ui-listview@next --save
PabloPG commented 4 years ago

@NeriCodec @jessorlisa @PabloPG can you guys test the fix that is now included in the next tag

You could install the next tag as follows:

npm i nativescript-ui-listview@next --save

The list is working, but the tkGroupTemplate not working, and when i click to collapse got the error.

untitled

jessorlisa commented 4 years ago

@NickIliev The next tag (currently: nativescript-ui-listview@8.1.2-next-2020-03-30-135845-01) seems to working just fine with my Android app (I do not use tkGroupTemplate).

jessorlisa commented 4 years ago

But sadly it is failing on iOS:

*** Assertion failure in -[TKCollectionView _endItemAnimationsWithInvalidationContext:tentativelyForReordering:animator:], /BuildRoot/Library/Caches/com.apple.xbs/Sources/UIKit_Sim/UIKit-3600.7.47/UICollectionView.m:5781
NativeScript caught signal 11.
Native Stack:
1   0x10cdc9251 sig_handler(int)
2   0x1126115fd _sigtramp
3   0x1122c337e dyld_stub_binder
4   0x11255fcb6 libunwind::UnwindCursor<libunwind::LocalAddressSpace, libunwind::Registers_x86_64>::step()
5   0x112563e68 _Unwind_RaiseException
6   0x1121669a2 __cxa_throw
7   0x1117be268 _objc_exception_destructor(void*)
8   0x111d56cf2 +[NSException raise:format:arguments:]
9   0x10dfd8536 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:]
10  0x10edad966 -[UICollectionView _endItemAnimationsWithInvalidationContext:tentativelyForReordering:animator:]
11  0x10eda96ce -[UICollectionView _updateRowsAtIndexPaths:updateAction:]
12  0x1116995c6 -[TKCollectionView insertItemsAtIndexPaths:]
13  0x11169d68f __38-[TKListView insertItemsAtIndexPaths:]_block_invoke
14  0x10e51a3da +[UIView(UIViewAnimationWithBlocks) _setupAnimationWithDuration:delay:view:options:factory:animations:start:animationStateGenerator:completion:]
15  0x10e51a94c +[UIView(UIViewAnimationWithBlocks) animateWithDuration:animations:completion:]
16  0x11169d582 -[TKListView insertItemsAtIndexPaths:]
17  0x10d7baa8d ffi_call_unix64
18  0x1267973e0
JS Stack:
insertItemsAtIndexPaths([native code])
at file: node_modules/nativescript-ui-listview/angular/listview-directives.js:209:0
at checkAndUpdateDirectiveInline(file: node_modules/@angular/core/fesm5/core.js:21100:0)
at debugCheckAndUpdateNode(file: node_modules/@angular/core/fesm5/core.js:30091:0)
at debugCheckDirectivesFn(file: node_modules/@angular/core/fesm5/core.js:30051:0)
at
at checkAndUpdateView(file: node_modules/@angular/core/fesm5/core.js:29439:0)
at callViewAction(file: node_modules/@angular/core/fesm5/core.js:29680:0)
at execEmbeddedViewsAction(file: node_modules/@angular/core/fesm5/core.js:29643:0)
at checkAndUpdateView(file: node_modules/@angular/core/fesm5/core.js:29440:0)
at callViewAction(file: node_modules/@angular/core/fesm5/core.js:29680:0)
at execEmbeddedViewsAction(file: node_modules/@angular/core/fesm5/core.js:29643:0)
at checkAndUpdateView(file: node_modules/@angular/core/fesm5/core.js:29440:0)
at callViewAction(file: node_modules/@angular/core/fesm5/core.js:29680:0)
at execComponentViewsAction(file: node_modules/@angular/core/fesm5/core.js:29622:0)
at checkAndUpdateView(file: node_modules/@angular/core/fesm5/core.js:29445:0)
at callViewAction(file: node_modules/@angular/core/fesm5/core.js:29680:0)
at execEmbeddedViewsAction(file: node_modules/@angular/core/fesm5/core.js:29643:0)
at checkAndUpdateView(file: node_modules/@angular/core/fesm5/core.js:29440:0)
at callViewAction(file: node_modules/@angular/core/fesm5/core.js:29680:0)
at execEmbeddedViewsAction(file: node_modules/@angular/core/fesm5/core.js:29643:0)
at checkAndUpdateView(file: node_modules/@angular/core/fesm5/core.js:29440:0)
at callViewAction(file: node_modules/@angular/core/fesm5/core.js:29680:0)
at execComponentViewsAction(file: node_modules/@angular/core/fesm5/core.js:29622:0)
at checkAndUpdateView(file: node_modules/@angular/core/fesm5/core.js:29445:0)
at callWithDebugContext(file: node_modules/@angular/core/fesm5/core.js:30309:0)
at file: node_modules/@angular/core/fesm5/core.js:20686:0
at file: node_modules/@angular/core/fesm5/core.js:27109:0
at file: node_modules/@angular/core/fesm5/core.js:26998:97
at onInvoke(file: node_modules/@angular/core/fesm5/core.js:26256:0)
at file: node_modules/@nativescript/angular/zone-js/dist/zone-nativescript.js:138:0
at next(file: node_modules/@angular/core/fesm5/core.js:26998:67)
at file: node_modules/@angular/core/fesm5/core.js:23735:34
at file: node_modules/rxjs/_esm5/internal/Subscriber.js:194:0
at file: node_modules/rxjs/_esm5/internal/Subscriber.js:132:0
at file: node_modules/rxjs/_esm5/internal/Subscriber.js:76:0
at file: node_modules/rxjs/_esm5/internal/Subscriber.js:53:0
at file: node_modules/rxjs/_esm5/internal/Subject.js:47:0
at file: node_modules/@angular/core/fesm5/core.js:23719:52
at checkStable(file: node_modules/@angular/core/fesm5/core.js:26225:0)
at onHasTask(file: node_modules/@angular/core/fesm5/core.js:26269:0)
at file: node_modules/@nativescript/angular/zone-js/dist/zone-nativescript.js:441:0
at file: node_modules/@nativescript/angular/zone-js/dist/zone-nativescript.js:461:0
at file: node_modules/@nativescript/angular/zone-js/dist/zone-nativescript.js:285:0
at file: node_modules/@nativescript/angular/zone-js/dist/zone-nativescript.js:205:0
at drainMicroTaskQueue(file: node_modules/@nativescript/angular/zone-js/dist/zone-nativescript.js:595:0)
at promiseReactionJob
at UIApplicationMain([native code])
at run(file: node_modules/@nativescript/core/application/application.ios.js:312:0)
at file: node_modules/@nativescript/angular/platform-common.js:210:0
at file: node_modules/@nativescript/angular/platform-common.js:111:0
at file: node_modules/@nativescript/angular/platform-common.js:91:0
at file:///app/bundle.js:4704:145
at ./main.tns.ts(file:///app/bundle.js:4709:34)
at __webpack_require__(file: src/webpack/bootstrap:753:0)
at checkDeferredModules(file: src/webpack/bootstrap:43:0)
at webpackJsonpCallback(file: src/webpack/bootstrap:30:0)
at anonymous(file:///app/bundle.js:2:61)
at evaluate([native code])
at moduleEvaluation
at
at asyncFunctionResume
at
at promiseReactionJob

Same error as with version nativescript-ui-listview@8.1.0

alereisan commented 4 years ago

using tns-core-modules 6.5.0, tns-ios 6.5.0 or tns-core-modules 6.4.1, tns-ios 6.4.1: with "nativescript-ui-listview": "^8.1.2-next-2020-03-30-135845-01",

NativeScript caught signal 11.
Native Stack:
1   0x109846251 sig_handler(int)
2   0x11246fb5d _sigtramp
3   0x7ffee79ce460
4   0x11236ab23 libunwind::UnwindCursor<libunwind::LocalAddressSpace, libunwind::Registers_x86_64>::step()
5   0x11236ee34 _Unwind_RaiseException
6   0x110f38b34 __cxa_throw
7   0x10ff42158 _objc_exception_destructor(void*)
8   0x111223472 +[NSException raise:format:arguments:]
9   0x10aa62652 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:]
10  0x10bac3a51 -[UICollectionView _endItemAnimationsWithInvalidationContext:tentativelyForReordering:animator:]
11  0x10babf554 -[UICollectionView _updateRowsAtIndexPaths:updateAction:updates:]
12  0x10babf5fd -[UICollectionView insertItemsAtIndexPaths:]
13  0x10fe765c6 -[TKCollectionView insertItemsAtIndexPaths:]
14  0x10fe7a68f __38-[TKListView insertItemsAtIndexPaths:]_block_invoke
15  0x10b0a6537 +[UIView(UIViewAnimationWithBlocks) _setupAnimationWithDuration:delay:view:options:factory:animations:start:animationStateGenerator:completion:]
16  0x10b0a6a7e +[UIView(UIViewAnimationWithBlocks) animateWithDuration:animations:completion:]
17  0x10fe7a582 -[TKListView insertItemsAtIndexPaths:]
18  0x10a237a8d ffi_call_unix64
19  0x12cff48c0
JS Stack:
**insertItemsAtIndexPaths([native code])**
at file: node_modules/nativescript-ui-listview/angular/listview-directives.js:209:0
at checkAndUpdateDirectiveInline(file: node_modules/@angular/core/fesm5/core.js:21100:0)
at debugCheckAndUpdateNode(file: node_modules/@angular/core/fesm5/core.js:30091:0)
at debugCheckDirectivesFn(file: node_modules/@angular/core/fesm5/core.js:30051:0)
at
at checkAndUpdateView(file: node_modules/@angular/core/fesm5/core.js:29439:0)
at callViewAction(file: node_modules/@angular/core/fesm5/core.js:29680:0)
at execEmbeddedViewsAction(file: node_modules/@angular/core/fesm5/core.js:29643:0)
at checkAndUpdateView(file: node_modules/@angular/core/fesm5/core.js:29440:0)
at callViewAction(file: node_modules/@angular/core/fesm5/core.js:29680:0)
at execComponentViewsAction(file: node_modules/@angular/core/fesm5/core.js:29622:0)
at checkAndUpdateView(file: node_modules/@angular/core/fesm5/core.js:29445:0)
at callViewAction(file: node_modules/@angular/core/fesm5/core.js:29680:0)
at execEmbeddedViewsAction(file: node_modules/@angular/core/fesm5/core.js:29643:0)
at checkAndUpdateView(file: node_modules/@angular/core/fesm5/core.js:29440:0)
at callViewAction(file: node_modules/@angular/core/fesm5/core.js:29680:0)
at execEmbeddedViewsAction(file: node_modules/@angular/core/fesm5/core.js:29643:0)
at checkAndUpdateView(file: node_modules/@angular/core/fesm5/core.js:29440:0)
at callViewAction(file: node_modules/@angular/core/fesm5/core.js:29680:0<…>

This app is using "nativescript-angular": "8.21.0", RadListView is implemented for example like this:

  <GridLayout rows="*" backgroundColor="black" *ngIf="!activity && !availError" [marginBottom]="showIosBuffer ? '56' : '0'">
    <RadListView row="0" [items]="categories" backgroundColor="black">
      <ng-template tkListItemTemplate let-item="item">
        <GridLayout rows="*">
        <GridLayout row="0" (tap)="onCategoryTap(item)">
          <GridLayout rows="48, 100, 28" backgroundColor="black">
            <GridLayout row="0" rowSpan="3" backgroundColor="black">
              <Image *ngIf="item.imageRectangular" [src]="mediaUrl + item.imageRectangular + '?quality=90&format=jpg&mode=crop&width=960&height=360'" stretch="aspectFill" loadMode="async" backgroundColor="black" class="placeholder-rectangular"></Image>
              <Image *ngIf="!item.imageRectangular" src="~/images/placeholder-rectangular.png" stretch="aspectFill" loadMode="async" backgroundColor="black"></Image>
            </GridLayout>
            <!-- PRomotion indicator -->
            <GridLayout row="0" visibility="{{ item.promoState ? 'visible' : 'collapsed' }}" padding="8">
                <Image src="~/images/icon_myyoojis_active.png" height="48" padding="16" horizontalAlignment="left"></Image>
            </GridLayout>
            <!-- <GridLayout ngIf="item.categoryLanguages"> -->
            <GridLayout row="2">
            <!-- <GridLayout row="2" *ngFor="let lang of item.categoryLanguages"> -->
              <StackLayout class="category-name">
              <!-- <StackLayout class="category-name" *ngIf="lang.languageKuerzel === selectedLanguage"> -->
                <Label color="#ffffff" [text]="item.categoryLanguages[0].name"></Label>
              </StackLayout>
            </GridLayout>
            <!-- </GridLayout> -->
          </GridLayout>
        </GridLayout> 
        </GridLayout>
      </ng-template>
      <ListViewLinearLayout tkListViewLayout scrollDirection="Vertical" spanCount="1"></ListViewLinearLayout>
    </RadListView>
  </GridLayout> 
</GridLayout>

When I downgrade stuff to the following, it works: "nativescript-ui-listview": "8.0.1", "tns-core-modules": "6.3.2", "tns-ios": { "version": "6.3.0" },

Log3n commented 4 years ago

@jessorlisa @alereisan I had the same issue after upgrading to the latest version (8.1.1) of nativescript-ui-listview. I had to change the listview item source from an simple js array to an nativescript ObservableArray to prevent the crash. So, if you are using an js array you can simply create an ObservableArray from your current js array:

listviewItems = new ObservableArray(jsArrayData);

jscti commented 4 years ago

listviewItems = new ObservableArray(jsArrayData);

Thanks !

victorevox commented 4 years ago

Same issue on IOS

Native Stack:
1   0x109a64251 sig_handler(int)
2   0x11344642d _sigtramp
3   0x8b10b3008b10ae
4   0x113384b4d libunwind::UnwindCursor<libunwind::LocalAddressSpace, libunwind::Registers_x86_64>::step()
5   0x113388e4c _Unwind_RaiseException
6   0x112f644aa __cxa_throw
7   0x111985bfa _objc_exception_destructor(void*)
8   0x112b28482 +[NSException raise:format:arguments:]
9   0x10ac3a927 -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:]
10  0x11380c479 -[UICollectionView _endItemAnimationsWithInvalidationContext:tentativelyForReordering:animator:]
11  0x113808239 -[UICollectionView _updateRowsAtIndexPaths:updateAction:updates:]
12  0x1138082c4 -[UICollectionView insertItemsAtIndexPaths:]
13  0x1118615c6 -[TKCollectionView insertItemsAtIndexPaths:]
14  0x11186568f __38-[TKListView insertItemsAtIndexPaths:]_block_invoke
15  0x11443b3e5 +[UIView(UIViewAnimationWithBlocks) _setupAnimationWithDuration:delay:view:options:factory:animations:start:animationStateGenerator:completion:]
16  0x11443b931 +[UIView(UIViewAnimationWithBlocks) animateWithDuration:animations:completion:]
17  0x111865582 -[TKListView insertItemsAtIndexPaths:]
18  0x10a455a8d ffi_call_unix64
19  0x1506699e0
JS Stack:
insertItemsAtIndexPaths([native code])
at file: node_modules/nativescript-ui-listview/angular/listview-directives.js:209:0
at checkAndUpdateDirectiveInline(file: node_modules/@angular/core/fesm5/core.js:21100:0)
at debugCheckAndUpdateNode(file: node_modules/@angular/core/fesm5/core.js:30091:0)
at debugCheckDirectivesFn(file: node_modules/@angular/core/fesm5/core.js:30051:0)
at
at checkAndUpdateView(file: node_modules/@angular/core/fesm5/core.js:29439:0)
at callViewAction(file: node_modules/@angular/core/fesm5/core.js:29680:0)
at execEmbeddedViewsAction(file: node_modules/@angular/core/fesm5/core.js:29643:0)
at checkAndUpdateView(file: node_modules/@angular/core/fesm5/core.js:29440:0)
at callViewAction(file: node_modules/@angular/core/fesm5/core.js:29680:0)
at execEmbeddedViewsAction(file: node_modules/@angular/core/fesm5/core.js:29643:0)
at checkAndUpdateView(file: node_modules/@angular/core/fesm5/core.js:29440:0)
at callViewAction(file: node_modules/@angular/core/fesm5/core.js:29680:0)
at execComponentViewsAction(file: node_modules/@angular/core/fesm5/core.js:29622:0)
at checkAndUpdateView(file: node_modules/@angular/core/fesm5/core.js:29445:0)
at callWithDebugContext(file: node_modules/@angular/core/fesm5/core.js:30309:0)
at file: node_modules/@angular/core/fesm5/core.js:20686:0

Using:

"tns-core-modules": "~6.5.0"
"nativescript-ui-listview": "8.1.2"
"tns-ios": {
      "version": "6.5.0"
 }
jessorlisa commented 4 years ago

nativescript-ui-listview@8.1.2 is working fine for Android without the need to change anything as mentioned by @Log3n:

listviewItems = new ObservableArray(jsArrayData);

Is there any chance this will be fixed for iOS as well? Using nativescript ObservableArray would make it neccessary to duplicate the affected components in code sharing projects.

cjohn001 commented 4 years ago

I have the same issue, crashes on ios when using with async pipe.

<RadListView #idWeightsList row="2" [items]="(_bodyWeightViewResult$ | async)?.bodyWeights">

Are there any news on the issue or do I need to copy everything in an ObervableArray on each change for getting it to work on ios?

houssammehdi commented 4 years ago

Any update on this? Passing element of type Observable<Array<MyItem>>.

Getting this on android: ERROR ERROR ReferenceError: NSMutableArray is not defined

plackowski commented 4 years ago

Same problem here (android). Errors occur when try to scroll my view. Any idea?

An uncaught Exception occurred on "main" thread. Inconsistency detected. Invalid item position 8(offset:8).state:9 com.telerik.widget.list.RadListView{f20ee5b VFED..... ......ID 0,0-1300,1622 #5}, adapter:com.telerik.widget.list.ListViewWrapperAdapter@30def19, layout:androidx.recyclerview.widget.LinearLayoutManager@35697d1, context:com.tns.NativeScriptActivity@2bf1d1c

StackTrace: java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 8(offset:8).state:9 com.telerik.widget.list.RadListView{f20ee5b VFED..... ......ID 0,0-1300,1622 #5}, adapter:com.telerik.widget.list.ListViewWrapperAdapter@30def19, layout:androidx.recyclerview.widget.LinearLayoutManager@35697d1, context:com.tns.NativeScriptActivity@2bf1d1c at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5923) at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5858) at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5854) at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2230) at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1557) at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1517) at androidx.recyclerview.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1331) at androidx.recyclerview.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:1075) at androidx.recyclerview.widget.RecyclerView.scrollStep(RecyclerView.java:1832) at androidx.recyclerview.widget.RecyclerView.scrollByInternal(RecyclerView.java:1927) at androidx.recyclerview.widget.RecyclerView.onTouchEvent(RecyclerView.java:3187) at com.telerik.widget.list.RadListView.onTouchEvent(RadListView.java:555) at android.view.View.dispatchTouchEvent(View.java:11776) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2962) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2643) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:448) at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1829) at android.app.Activity.dispatchTouchEvent(Activity.java:3307) at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69) at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:410) at android.view.View.dispatchPointerEvent(View.java:12015) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4795) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4609) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4147) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4200) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4166) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4293) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4174) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4350) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4147) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4200) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4166) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4174) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4147) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6661) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6635) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6596) at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6764) at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:186) at android.os.MessageQueue.nativePollOnce(Native Method) at android.os.MessageQueue.next(MessageQueue.java:325) at android.os.Looper.loop(Looper.java:142) at android.app.ActivityThread.main(ActivityThread.java:6494) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)


"dependencies": { "@angular/animations": "~8.2.14", "@angular/cdk": "^8.2.3", "@angular/common": "~8.2.14", "@angular/compiler": "~8.2.14", "@angular/core": "~8.2.14", "@angular/fire": "^5.3.0", "@angular/forms": "~8.2.14", "@angular/http": "~8.0.0-beta.10", "@angular/material": "^8.2.3", "@angular/platform-browser": "~8.2.14", "@angular/platform-browser-dynamic": "~8.2.14", "@angular/router": "~8.2.14", "@firebase/testing": "^0.19.5", "@nativescript/core": "6.5.2", "@ngx-translate/core": "^12.1.2", "@ngx-translate/http-loader": "^4.0.0", "@types/jest": "^24.0.0", "bootstrap": "^4.4.1", "core-js": "^3.6.2", "faker": "^4.1.0", "firebase": "^7.14.5", "hammerjs": "^2.0.8", "nativescript-angular": "^8.21.0", "nativescript-gif": "^4.0.4", "nativescript-intl": "^3.0.0", "nativescript-plugin-firebase": "^10.5.2", "nativescript-sound": "^1.0.4", "nativescript-texttospeech": "^2.0.3", "nativescript-theme-core": "~2.0.24", "nativescript-toasty": "^2.0.1", "nativescript-ui-listview": "^8.2.0", "nativescript-ui-sidedrawer": "8.0.1", "nativescript-unit-test-runner": "^0.7.0", "npm-check-updates": "^6.0.1", "reflect-metadata": "~0.1.13", "rxjs": "~6.5.5", "zone.js": "~0.10.3" }, "devDependencies": { "@angular-devkit/build-angular": "^0.803.24", "@angular/cli": "^8.3.22", "@angular/compiler-cli": "~8.2.14", "@nativescript/schematics": "~1.0.0", "@nativescript/tslint-rules": "~0.0.5", "@types/jasmine": "3.4.6", "@types/jasminewd2": "~2.0.8", "@types/node": "^13.1.6", "codelyzer": "^5.2.1", "jasmine-core": "~3.5.0", "jasmine-spec-reporter": "~4.2.1", "jest": "^24.0.0", "jest-preset-angular": "^8.0.0", "karma": "4.4.1", "karma-chrome-launcher": "~3.1.0", "karma-coverage-istanbul-reporter": "~2.1.1", "karma-jasmine": "2.0.1", "karma-jasmine-html-reporter": "^1.5.1", "karma-nativescript-launcher": "0.4.0", "karma-webpack": "3.0.5", "nativescript-dev-webpack": "^1.4.1", "node-sass": "^4.13.1", "protractor": "~5.4.2", "ts-node": "~8.6.0", "tslint": "~5.20.1", "typescript": "~3.5.3", "webpack-bundle-analyzer": "^3.6.0", "webpack-cli": "^3.3.10" }

Then I changed dependencies to:

"nativescript-ui-listview": "^8.0.1",
"nativescript-ui-sidedrawer": "8.0.0",

No success.. :/

nericode commented 4 years ago

I recommend use { NS } Version 6.4 and nativescript-ui-listview 8.0.1 for work!.

Not update now { NS } 6.5 not is stable.

@NickIliev

plackowski commented 4 years ago

@NeriCodec I tried, no success. But don't understand why you recommend 6.4 for that case. Your package.json had the same versions ;) So what was the difference? ;)

https://github.com/NativeScript/nativescript-ui-feedback/issues/1377#issuecomment-602765186

houssammehdi commented 4 years ago

tns install nativescript-ui-listview@8.1.2-next-2020-03-30-135845-01 fixed it for me.

mm-spiio commented 4 years ago

I have this issue on ios emulator and nativescript-ui-listview@8.1.2 but only on ios12 (and probably below, haven't tested yet) - tested on iPhone X. Does work without problems in ios 13 on iPhone 11, 11 Pro and Max and even iPhone 8.

My radlistview uses async pipe too and I use a BehaviorSubject so that it has an initial value else it was crashing on android.

Any idea what the problem is? Seems to be connected to the ios version ...

mm-spiio commented 4 years ago

Nothing? This is really bad if we cannot comfortably deploy apps on os's just 1 version old with no warning...

The error I get is:


* thread #1, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
    frame #0: 0x000000010c127a76 libunwind.dylib`libunwind::CFI_Parser<libunwind::LocalAddressSpace>::decodeFDE(libunwind::LocalAddressSpace&, unsigned long long, libunwind::CFI_Parser<libunwind::LocalAddressSpace>::FDE_Info*, libunwind::CFI_Parser<libunwind::LocalAddressSpace>::CIE_Info*) + 26
libunwind.dylib`libunwind::CFI_Parser<libunwind::LocalAddressSpace>::decodeFDE:
->  0x10c127a76 <+26>: movl   (%r15), %r12d
    0x10c127a79 <+29>: leaq   0x4(%r15), %rbx
    0x10c127a7d <+33>: movl   $0xffffffff, %eax         ; imm = 0xFFFFFFFF 
    0x10c127a82 <+38>: movq   %rbx, -0x30(%rbp)
Target 0: (spiiomobile) stopped.```
mhchristensen commented 4 years ago

I was able to find a fix for my project.

It seems nativescript really doesn't like it when you replace the array that controls were bound to. I ran into other places where this was also a problem like pullToRefresh.

The answer is to let the original array reference stay intact and just replace its contents.

Given a property:

selectedEvents: MyEventType[] = [];

In your load method that updates it:

        // Clear
        this.selectedEvents.splice(0, this.selectedEvents.length);

        const dataToPush = [ ] ; // Data from server or after some filter operation.

        this.selectedEvents.push.apply(this.selectedEvents, dataToPush);
facetious commented 3 years ago

This error can be resolved by either:

  1. Using an ObservableArray; or
  2. Using manual change detection and replacing the array wholesale rather than modifying it with a splice.