React Native ExpoのAndroid版アプリでJavaScript Intlを使う際に起きたエラー

React Native Expo アプリの多言語・多通貨対応に JavaScript ライブラリ Intl を利用しています。iOS 版はすんなり動いたのですが、Android 版では 2 つのエラー対応が必要でした。発生したエラーと対応についてまとめます。

修正自体は簡単で、現在は iOS 版・Android 版ともブランチを分けることなくソース管理できています。

目次

Can't find variable: Intl

iOS 版では問題なく動いたコードなのですが、Android 版ではエラーCan't find variable: Intlが発生しました。import "intl"を App.tsx の一番最初の方に書いてあげないとエラーになるようです。

SDK 36 Problem with Intl after upgrade · Issue #6536 · expo/expo · GitHub

No locale data has been provided

同じく iOS 版では問題なく動いたコードなのですが、Android 版では使用するロケールに対応した import を書いてあげないとエラーNo locale data has been providedが起きました。

import "intl/locale-data/jsonp/ja-JP";
import "intl/locale-data/jsonp/en-US";

javascript - “No locale data has been provided” regardless of what is passed in - Stack Overflow

インポートを追加しても、iOS 版は特に変わりなく動いています。






Amazon欲しいものリスト

私が作業中に飲んでいるコーヒーや欲しいマンガなどを集めました。開発・執筆の励みになりますのでクリックして頂ければ幸いです。

<Amazon欲しいものリスト>