2016年07月24日
Androidアプリ出力時のUnicodeDecodeError: 'utf-8'の場合の対処
◆Androidアプリ出力時のUnicodeDecodeError: 'utf-8'の場合の対処
参考:
ツクールMVで作成したプロジェクトをAndroid用apkファイルに出力する手順
https://fanblogs.jp/tabirpglab/archive/155/0
■切り分け1
Androidアプリ出力時に次のエラーが発生した場合、ファイル名にマルチバイト文字(空白、スペース、全角文字)が含まれていることが原因の1つとしてあるようです。
■エラーメッセージ
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8e in position 0: invalid
start byte
■対処
該当のファイル名を探すツールとして、こちらが大変役立ちました。
[ツール]
マルチバイト文字を含むファイル・フォルダ名を検出
作者:よたろー 様
ダウンロード先:
http://www.vector.co.jp/soft/winnt/util/se499525.html
■切り分け2
私の場合、切り分け1でも解決しませんでした。
その他確認したのは
新規プロジェクトを作成、Androidアプリとしてデプロイメントしたファイルで試す
→全く同じエラーが再現
つまりWindowsおよびインストールしている環境にエラー原因があるようです。
これを読む限り、エラーを返しているのはcrosswalkフォルダ内のutil.pyの47行目。
■切り分け3
crosswalkの別バージョンをインストールすることにしました。
ツクールMVのヘルプには次のような記述があります。
****************************************************
2-5 Crosswalk ProjectのAndroidアプリテンプレートをダウンロード
Crosswalk Projectはインストールを必要としません。ダウンロードしたZIPファイルを好きな場所に展開します。ダウンロードしたファイルの中にはブラウザエンジンや、パッケージングスクリプトが含まれます。
https://download.01.org/crosswalk/releases/crosswalk/android/stable/より、Androidアプリテンプレートのstable(安定)版をダウンロードします。バージョンが14までありますが、10.39.235.16が安定しています。
****************************************************
よって「10.39.235.16」をダウンロードして、出力実行時のコマンドも「10.39.235.16」のmake_apk.pyを参照するようにしました。
しかし結果は全く同じ文面のエラーが発生しました。
つまりcrosswalkを扱うpython側、もしくはwindows側のコンポーネントに問題があるのかもしれません。
■考察
私の環境は次の通りです。
・デスクトップPC
OS:Windows8.1 Professional(64bit)
CPU:AMD A8-5600K 3.6G
メモリ:8GB DDR3-1600 DIMM(4GB×2)
HDD:500GB HDD(SATA/7200rpm)
グラフィック:NVIDIA GeForce GTX750Ti 2GB
同じ環境でも2016/2時点では成功して、2016/5時点で失敗するようになった差分はOS構成の変化なのでしょう。
ちなみに2016/6/21現在ではOSはWindows10Home(64bit)に変更しました。
この件、気になるので、時間がある時に海外情報なども含めて調べてみます。
【2016/6/25追記】
■切り分け4
2016/2時点でApp出力が行えたデプロイメントファイル(GooglePlayで公開中のブックモービルというアプリ)でも全く同エラーが再現しました。
[試したこと]
UTF-8で読み込まれていない問題と思い、次のサイト様を参考にsite-packagesディレクトリへsitecustomize.pyを作成し、UTF-8を指定しました。
http://d.hatena.ne.jp/shu223/20111201/1328334689
http://yukihir0.hatenablog.jp/entry/20110131/1296478348
[私の場合のディレクトリ]
C:\Python35\Lib\site-packages
インタラクティブシェル?でもutf-8を確認
しかしエラーは回避しませんでした。
【2016/7/24追記】
■切り分け5
他のクリエイター様の成功環境を元に環境に変化をつけてみました。
参考:Androidアプリの生成について(ツクマテ様)
http://tm.lucky-duet.com/viewtopic.php?t=1522
[成功した環境]
Windows 10 64bit
Python34
jdk180_92
apache-ant-1.9.7
Android SDK manager 25.1.7
crosswalk-10.39.235.16
[失敗している環境(私)]
Windows 10 64bit
Python35(3.5.1)★成功例はPython34、2016/7/24現在の最新バージョンはPython35(3.5.2)
jdk180_101★成功例より新しいバージョン
apache-ant-1.9.6★成功例より古いバージョン
Android SDK manager 24.4.1★成功例より古いバージョン
crosswalk-10.39.235.16★同じ(ヘルプでも推奨されている)
[考え]
・動作実績のある成功例と同じバージョンにすることで解決に近づく可能性が上がる
不具合修正の観点で考えると、最新バージョンで回避できるならそれが一番いい
・Pythonとcrosswalkを活用した処理でErrorが発生している?
[試したこと]
1.Pythonのバージョンアップ
Python35の最新版3.5.2がリリースされていたのでアップデートしてみました。
結果:エラー内容変わらず。
2.Android SDKのバージョンアップ(24.4.1→25.1.7)
Android SDK Toolsを 24.4.1から25.1.7にバージョンアップしてみました
Android SDK Managerを起動
Android SDK ManagerからUpdate対象のファイルを選択(今回はAndroid SDK Tools)、「Install[インストール数]packages」をクリック
結果:エラー内容変わらず。
3.Pythonのバージョンダウン(35系→34系)
成功例で動作確認のとれているPython34へバージョンダウンしてみました。
Windows版Python3.4.4
https://www.python.org/downloads/release/python-344/
以前はPython35系だったので新たにPython34というフォルダが生成されていました。
そのため、システム環境変数を追加しておきます。
また念のため、Python35のシステム環境変数を削除しておきました。
※追加方法は公式ヘルプ2-1-2 パスの設定・確認の項を参照
結果:エラー内容変わらず。
4.apache-antのバージョンアップ(1.9.6→1.9.7)
成功例で動作確認のとれている1.9.7へバージョンアップしてみました。
ダウンロード先:
http://ant.apache.org/bindownload.cgi
また1.9.6から1.9.7へとシステム環境変数を修正しておきます。
結果:エラー内容変わらず。
5.site-packagesディレクトリへsitecustomize.pyを作成し、UTF-8を指定
http://d.hatena.ne.jp/shu223/20111201/1328334689
http://yukihir0.hatenablog.jp/entry/20110131/1296478348
[私の場合のディレクトリ]
C:\Python34\Lib\site-packages
結果:エラー内容変わらず。
[切り分け案]
1.Windowsを再インストールして最小限のアプリケーションだけをインストールした状態でどうか
※すぐに制作環境を崩すことは難しいのでそれならばPC1台用意したいところ
2.別ツールのCordovaでapkファイル化
参考:
PRESENT CALL様
RPGツクールMV作品をスマホアプリにする方法-1
http://presentcall.com/rpg%E3%83%84%E3%82%AF%E3%83%BC%E3%83%ABmv%E4%BD%9C%E5%93%81%E3%82%92%E3%82%B9%E3%83%9E%E3%83%9B%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95-1/
今後は2のCordovaを使う方法で進めてみます。
まとまった時間が取れ次第確認して記事にする予定です。
【2016/7/25追記】
Cordovaを使う方法でapkファイルの出力に成功しました。
参考:
RPGツクールMV向けCordovaを使ったApkファイル出力
https://fanblogs.jp/tabirpglab/archive/540/0
参考:
ツクールMVで作成したプロジェクトをAndroid用apkファイルに出力する手順
https://fanblogs.jp/tabirpglab/archive/155/0
■切り分け1
Androidアプリ出力時に次のエラーが発生した場合、ファイル名にマルチバイト文字(空白、スペース、全角文字)が含まれていることが原因の1つとしてあるようです。
■エラーメッセージ
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8e in position 0: invalid
start byte
■対処
該当のファイル名を探すツールとして、こちらが大変役立ちました。
[ツール]
マルチバイト文字を含むファイル・フォルダ名を検出
作者:よたろー 様
ダウンロード先:
http://www.vector.co.jp/soft/winnt/util/se499525.html
■切り分け2
私の場合、切り分け1でも解決しませんでした。
その他確認したのは
新規プロジェクトを作成、Androidアプリとしてデプロイメントしたファイルで試す
→全く同じエラーが再現
つまりWindowsおよびインストールしている環境にエラー原因があるようです。
これを読む限り、エラーを返しているのはcrosswalkフォルダ内のutil.pyの47行目。
■切り分け3
crosswalkの別バージョンをインストールすることにしました。
ツクールMVのヘルプには次のような記述があります。
****************************************************
2-5 Crosswalk ProjectのAndroidアプリテンプレートをダウンロード
Crosswalk Projectはインストールを必要としません。ダウンロードしたZIPファイルを好きな場所に展開します。ダウンロードしたファイルの中にはブラウザエンジンや、パッケージングスクリプトが含まれます。
https://download.01.org/crosswalk/releases/crosswalk/android/stable/より、Androidアプリテンプレートのstable(安定)版をダウンロードします。バージョンが14までありますが、10.39.235.16が安定しています。
****************************************************
よって「10.39.235.16」をダウンロードして、出力実行時のコマンドも「10.39.235.16」のmake_apk.pyを参照するようにしました。
しかし結果は全く同じ文面のエラーが発生しました。
つまりcrosswalkを扱うpython側、もしくはwindows側のコンポーネントに問題があるのかもしれません。
■考察
私の環境は次の通りです。
・デスクトップPC
OS:Windows8.1 Professional(64bit)
CPU:AMD A8-5600K 3.6G
メモリ:8GB DDR3-1600 DIMM(4GB×2)
HDD:500GB HDD(SATA/7200rpm)
グラフィック:NVIDIA GeForce GTX750Ti 2GB
同じ環境でも2016/2時点では成功して、2016/5時点で失敗するようになった差分はOS構成の変化なのでしょう。
ちなみに2016/6/21現在ではOSはWindows10Home(64bit)に変更しました。
この件、気になるので、時間がある時に海外情報なども含めて調べてみます。
【2016/6/25追記】
■切り分け4
2016/2時点でApp出力が行えたデプロイメントファイル(GooglePlayで公開中のブックモービルというアプリ)でも全く同エラーが再現しました。
[試したこと]
UTF-8で読み込まれていない問題と思い、次のサイト様を参考にsite-packagesディレクトリへsitecustomize.pyを作成し、UTF-8を指定しました。
http://d.hatena.ne.jp/shu223/20111201/1328334689
http://yukihir0.hatenablog.jp/entry/20110131/1296478348
[私の場合のディレクトリ]
C:\Python35\Lib\site-packages
インタラクティブシェル?でもutf-8を確認
しかしエラーは回避しませんでした。
【2016/7/24追記】
■切り分け5
他のクリエイター様の成功環境を元に環境に変化をつけてみました。
参考:Androidアプリの生成について(ツクマテ様)
http://tm.lucky-duet.com/viewtopic.php?t=1522
[成功した環境]
Windows 10 64bit
Python34
jdk180_92
apache-ant-1.9.7
Android SDK manager 25.1.7
crosswalk-10.39.235.16
[失敗している環境(私)]
Windows 10 64bit
Python35(3.5.1)★成功例はPython34、2016/7/24現在の最新バージョンはPython35(3.5.2)
jdk180_101★成功例より新しいバージョン
apache-ant-1.9.6★成功例より古いバージョン
Android SDK manager 24.4.1★成功例より古いバージョン
crosswalk-10.39.235.16★同じ(ヘルプでも推奨されている)
[考え]
・動作実績のある成功例と同じバージョンにすることで解決に近づく可能性が上がる
不具合修正の観点で考えると、最新バージョンで回避できるならそれが一番いい
・Pythonとcrosswalkを活用した処理でErrorが発生している?
[試したこと]
1.Pythonのバージョンアップ
Python35の最新版3.5.2がリリースされていたのでアップデートしてみました。
結果:エラー内容変わらず。
2.Android SDKのバージョンアップ(24.4.1→25.1.7)
Android SDK Toolsを 24.4.1から25.1.7にバージョンアップしてみました
Android SDK Managerを起動
Android SDK ManagerからUpdate対象のファイルを選択(今回はAndroid SDK Tools)、「Install[インストール数]packages」をクリック
結果:エラー内容変わらず。
3.Pythonのバージョンダウン(35系→34系)
成功例で動作確認のとれているPython34へバージョンダウンしてみました。
Windows版Python3.4.4
https://www.python.org/downloads/release/python-344/
以前はPython35系だったので新たにPython34というフォルダが生成されていました。
そのため、システム環境変数を追加しておきます。
また念のため、Python35のシステム環境変数を削除しておきました。
※追加方法は公式ヘルプ2-1-2 パスの設定・確認の項を参照
結果:エラー内容変わらず。
4.apache-antのバージョンアップ(1.9.6→1.9.7)
成功例で動作確認のとれている1.9.7へバージョンアップしてみました。
ダウンロード先:
http://ant.apache.org/bindownload.cgi
また1.9.6から1.9.7へとシステム環境変数を修正しておきます。
結果:エラー内容変わらず。
5.site-packagesディレクトリへsitecustomize.pyを作成し、UTF-8を指定
http://d.hatena.ne.jp/shu223/20111201/1328334689
http://yukihir0.hatenablog.jp/entry/20110131/1296478348
[私の場合のディレクトリ]
C:\Python34\Lib\site-packages
結果:エラー内容変わらず。
[切り分け案]
1.Windowsを再インストールして最小限のアプリケーションだけをインストールした状態でどうか
※すぐに制作環境を崩すことは難しいのでそれならばPC1台用意したいところ
2.別ツールのCordovaでapkファイル化
参考:
PRESENT CALL様
RPGツクールMV作品をスマホアプリにする方法-1
http://presentcall.com/rpg%E3%83%84%E3%82%AF%E3%83%BC%E3%83%ABmv%E4%BD%9C%E5%93%81%E3%82%92%E3%82%B9%E3%83%9E%E3%83%9B%E3%82%A2%E3%83%97%E3%83%AA%E3%81%AB%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95-1/
今後は2のCordovaを使う方法で進めてみます。
まとまった時間が取れ次第確認して記事にする予定です。
【2016/7/25追記】
Cordovaを使う方法でapkファイルの出力に成功しました。
参考:
RPGツクールMV向けCordovaを使ったApkファイル出力
https://fanblogs.jp/tabirpglab/archive/540/0
【このカテゴリーの最新記事】
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/5024967
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック