Androidアプリの生成について

自由に雑談できるトピックです。
J.S
記事: 16
登録日時: 2015年11月28日(土) 16:37

Androidアプリの生成について

投稿記事by J.S » 2016年6月23日(木) 21:14

皆さん、こんばんは、J.Sという者です。
今日は皆さんに伺いたいことがあって書き込ませていただきました。
もし気が向かれましたら教えてください。

自分はRPGツクールMVでソフトをAndroidアプリで出力しようとして
ツクールのヘルプに書かれていたとおりに環境を構築し生成を試みました。
しかし、「UnicodeDecodeError: 'utf-8' 」エラーが発生し生成に失敗しました。
(ちなみにファイル名にマルチバイト文字は使っていません)
その後インターネットを見ていると
自分と同じ環境で同じエラーに遭遇している人がいるということを知りました。
そこで、

1.Androidアプリの生成に成功している人について
  使用されているPCの環境等(OSのバージョンなど)

2.Androidアプリの生成に失敗する人について
  どのようなエラーが出るかや、同じく失敗時の環境等

3.一度はAndroidアプリ生成に失敗したがその後成功した人について
  どのように対処したか、また失敗時と比べての環境の変化


などをお聞かせいただきたいと思います。
自分は一連についてあまり詳しいことは分かりませんが
何か解決の糸口にならないかと思い書き込ませていただきました。
もしご迷惑でなければお聞かせください。

なお、もし自分のこの書き込みが不適切でしたら
削除しますので、その旨をお知らせください。
乱文失礼しました。

アバター
yamachan
記事: 107
登録日時: 2016年6月19日(日) 22:34

Re: Androidアプリの生成について

投稿記事by yamachan » 2016年6月23日(木) 23:53

Android アプリの開発経験はありますが、RPGツクールの変換はまだ実施してなくて。
よって一般的な指摘になっちゃいますが…

ファイル名にマルチバイト文字は使っていません、ということですが、出力フォルダのフルパス全てで使っていないでしょうか?

エクスポート先のデフォルトがユーザーの Document 配下になっていますよね。
なので、ユーザー名が全角文字の人だけマルチバイトの問題にハマる、って可能性がありそうです。
Toshio Yamashita (yamachan)
Plugin https://github.com/yamachan/jgss-hack/blob/master/README.ja.md
Twitter https://twitter.com/yamachan360

私が作成して本サイトに投稿したコードは著作権を放棄し、利用・改変・配布など全て自由です。
ただし同じ投降内に制限を明記している場合はそちらが優先します。
J.S
記事: 16
登録日時: 2015年11月28日(土) 16:37

Re: Androidアプリの生成について

投稿記事by J.S » 2016年6月24日(金) 18:31

yamachan様、ご返信ありがとうございます、J.Sです。

ご指摘の件ですが
一応プロジェクトフォルダはCドライブ直下にて行っています。
もちろんプロジェクトフォルダにもマルチバイト文字は使っておりません。
もしかしてアプリの出力先などは別の方法で指定しなければいけないのでしょうか?
それともCドライブ直下なども問題なのでしょうか?

本当に分からないことだらけで申し訳ありません。
もし差し支えなければ教えてください。
アバター
yamachan
記事: 107
登録日時: 2016年6月19日(日) 22:34

Re: Androidアプリの生成について

投稿記事by yamachan » 2016年6月25日(土) 13:27

うーむ、そうですか。

パスに問題が無いとすると、あと疑うのは manifest.json を作成したときの文字コードでしょうか。
Shift-JIS などではなく UTF-8 で保存されていることを確認してみてください。

この週末、時間がとれたら私も Android 用デプロイメントに挑戦してみます。
Toshio Yamashita (yamachan)
Plugin https://github.com/yamachan/jgss-hack/blob/master/README.ja.md
Twitter https://twitter.com/yamachan360

私が作成して本サイトに投稿したコードは著作権を放棄し、利用・改変・配布など全て自由です。
ただし同じ投降内に制限を明記している場合はそちらが優先します。
J.S
記事: 16
登録日時: 2015年11月28日(土) 16:37

Re: Androidアプリの生成について

投稿記事by J.S » 2016年6月25日(土) 14:37

yamachan様、ありがとうございます、J.Sです。

お手数をおかけして申し訳ありません。
ご協力いただき感謝です。
無知な自分にとってこうして教えていただけるのはとても助かります。
また何か分かりましたら教えてください。
アバター
yamachan
記事: 107
登録日時: 2016年6月19日(日) 22:34

Re: Androidアプリの生成について

投稿記事by yamachan » 2016年6月25日(土) 16:56

J.S さん、こんにちは! :D

マニュアルに従って関連ソフトウェアを導入し、Android アプリを生成してみました。
作成した apk を手持ちの Android タブレット (Kindle Fire HDX 7) に転送したところ、うまく動作しているようです。

Twitter にあげた動作中の様子
https://twitter.com/yamachan360/status/746606684777254912

環境はOSが Windows 10 64bit 日本語環境で、Python34, jdk180_92, apache-ant-1.9.7, Android SDK manager 25.1.7, crosswalk-10.39.235.16 です。

まず1点、すみません。
manifest.json ファイルの文字コードですが、UTF-8 ではなく Shift-JIS でないとエラーが出るようです。 :o
以下のように出ちゃうので、 Python もしくは Ant がシステムのデフォルトのコードで動作しちゃうんでしょうね。
json の規格と異なるので、なんとかして欲しいところです。

> There is a parser error in manifest.json file: 'cp932' codec can't decode byte 0xef in position 0: illegal multibyte sequence

これの副作用かもしれませんが、manifest.json の中で日本語が使えません。
name: は日本語にしたいところなんですが、問題なくビルドできたものが、ここを日本語に変えるだけでビルドできなくなりました。

※ Unicodeエスケープ 等は試していません、余裕あれば逃げ道を探ってみたいですね

またファイル名に日本語が使われていても駄目なようです。
手元のゲームでビルドできないものがあったのですが、「キャラクター生成」 でオリジナルのキャラを作成して日本語のセーブ名を使っていて、これが原因だとおもわれます。

あとこれはウチの環境だけかもしれませんが、途中で以下のようなエラーが出たので、出力用のTempフォルダを Windows Defender の除外リストに加えておきました。

> PermissionError: [WinError 32] プロセスはファイルにアクセスできません。別のプロ セスが使用中です。

全体的に、RPGツクールMV 自体は日本語をきちんと扱えているのですが、Android 環境用にビルドするときにそれ以外のツールが処理するもの、つまりは manifest.json やファイル名などの日本語の扱いに問題があるようです。

新規のゲームプロジェクトを英語タイトルで作成して、まずはそれをコンバートしてみることをお勧めします。
構築した環境が問題なのか、作成したゲーム自体の問題なのか、それで判別することで先に進めるのではないでしょうか。

以上、参考になりましたら幸いです。
Toshio Yamashita (yamachan)
Plugin https://github.com/yamachan/jgss-hack/blob/master/README.ja.md
Twitter https://twitter.com/yamachan360

私が作成して本サイトに投稿したコードは著作権を放棄し、利用・改変・配布など全て自由です。
ただし同じ投降内に制限を明記している場合はそちらが優先します。
J.S
記事: 16
登録日時: 2015年11月28日(土) 16:37

Re: Androidアプリの生成について

投稿記事by J.S » 2016年6月25日(土) 18:08

こんばんは、yamachan様、J.Sです。

詳細な情報提供、ありがとうございます。
やはり、生成できるケースもあるのですね。
また、ご助言いただいたとおり新規プロジェクトで生成を試しましたが
こちらも失敗してしまいました。
ですのでyamachan様のおっしゃるように
Windowsもしくは生成ツール環境に問題があるようです。
ちなみに自分の環境は

OS Windows 8.1update 64bit 日本語環境
Python3.5.1, jdk8u91, apache-ant-1.9.7, Android SDK manager 24.4.1, crosswalk-10.39.235.16です。
(皆さんにお聞きしていながら自分は書いていませんでした。失礼いたしました。)

また私が拝見した生成に失敗している方も
以前は生成できたのに、今は生成できない、という方もいらっしゃるようなので
Windowsを含め何かしらの要因があるのではと思っています。

引き続き情報を募集しますのでご迷惑でなければまた教えてください。
ありがとうございました。
アバター
yamachan
記事: 107
登録日時: 2016年6月19日(日) 22:34

Re: Androidアプリの生成について

投稿記事by yamachan » 2016年6月25日(土) 18:24

J.Sさん、お力になれずすみません。。

本題とは異なりますが、manifest.json に日本語を記載する方法がわかりましたので、参考のため追記しておきます。

そのまま日本語を書くとエラーでビルドを失敗しますが、Javaのふっるーい知識、Unicode エスケープの応用でいけました。
まずはコマンドプロンプトで、表示したい日本語を JDK の native2ascii で変換します。

echo "テスト1"|native2ascii
"\u30c6\u30b9\u30c81"

得られた文字列を、更に \ エスケープする、つまり \ を \\ に置き換えて manifest.json で利用します。

コード: 全て選択

{
  "name": "RTK1 \\u30c6\\u30b9\\u30c81",
  "xwalk_version": "0.0.1",
  ...


Android タブレット上で日本語で表示されるようになりました。
IMG_3379.JPG


いやあ、native2ascii なんて使ったの、10年ぶりぐらいかもしれません :D
Toshio Yamashita (yamachan)
Plugin https://github.com/yamachan/jgss-hack/blob/master/README.ja.md
Twitter https://twitter.com/yamachan360

私が作成して本サイトに投稿したコードは著作権を放棄し、利用・改変・配布など全て自由です。
ただし同じ投降内に制限を明記している場合はそちらが優先します。
J.S
記事: 16
登録日時: 2015年11月28日(土) 16:37

Re: Androidアプリの生成について

投稿記事by J.S » 2016年6月25日(土) 19:20

yamachan様、ありがとうございます、J.Sです。

いえいえ!ご助力いただき本当に感謝です!
むしろ私の不手際でご迷惑をおかけして申し訳ありません。
manifest.json に日本語を記載する方法の情報ありがとうございます。
もし自分の環境が改善したら試させていただきますね。
アバター
yamachan
記事: 107
登録日時: 2016年6月19日(日) 22:34

Re: Androidアプリの生成について

投稿記事by yamachan » 2016年6月25日(土) 19:46

J.Sさん、こんばんは :D

ちょっとググってみましたが、Python における UnicodeDecodeError はいろいろ出てきます。
かなり根が深そうですね…

ふと思い出したのですが、私は Python をダウンロードした時に、3.5.1 が最新だったのですが、それより後に 3.4.4 が公開されていたんです。
3.4.x 系列がまだメンテされているということは、3.5.x で大きな変更があったのかもしれない?と危惧しまして。。
RPGツクールMVの説明キャプチャも Python34 だったので、私はあえて 3.4.4 のほうをダウンロードして使いました。

というわけで、根拠の薄いアドバイスで申し訳ないのですが、もし可能であれば Python34 で試してみてはいかがでしょうか?
Toshio Yamashita (yamachan)
Plugin https://github.com/yamachan/jgss-hack/blob/master/README.ja.md
Twitter https://twitter.com/yamachan360

私が作成して本サイトに投稿したコードは著作権を放棄し、利用・改変・配布など全て自由です。
ただし同じ投降内に制限を明記している場合はそちらが優先します。

“雑談” へ戻る