React Native Androidで横スクロールするとクラッシュする

とあるReact Nativeアプリで「iOSで問題なく動いてるんだけど、Androidの実機で動かすと落ちる…」という事象が発生しました。

実機を繋いで「Android Device Monitor」からログを見つつアプリを操作しているとすぐに再現。

Unsupported top level event type "topScroll" dispatched

というエラーが発生していました。

Issueをエラーメッセージで検索すると、ありました。

2017年10月ごろからずっとやり取りが続いているようで、手強そうな感じです。

根本的な解決は後回しにして、Workaroundな対応でお茶を濁すことにしました。
Issueにあった「ViewPagerAndroid使えばいいよ」というコメントにしたがって、AndroidではViewPagerAndroidを使うようにしたところ、無事動きました。

こんな感じです。

{ Platform.OS === 'ios' &&
    <ScrollView
      horizontal
      pagingEnabled
    >
      ・・・
    </ScrollView>
}
{ Platform.OS !== 'ios' &&
    <ViewPagerAndroid
    >
      ・・・
    </ViewPagerAndroid>
}

そろそろAndroidがわからない状態が本気で辛くなってきたので、以下の本で勉強しようと思います。早く発売してほしい!

TimeCrowdに戻る