2012年12月15日

[Unity] Androidプラグインを使っていてランタイムエラー(ClassNotFoundException)が起きたときの対応

前回の記事に続き、こちらもOpenFeintを外すときにハマったエラーです。
ビルドが無事通り、いざ実行! というときにこのエラーが起きました。

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo……

原因は単純で、プラグインで使っている identifier と Unity で設定している identifier が異なっていたからです。
そりゃあ、ちゃんと揃えないと動かないわ。

整理すると
■誤
プラグイン側
xxx.xxx.xxx.one_shot
Unity側
xxx.xxx.xxx.OneShot

■正
プラグイン側
xxx.xxx.xxx.one_shot
Unity側
xxx.xxx.xxx.one_shot

iOSだとidentifierに「アンダーバー」が使えないために、iOSではidentifierを変えていたのでした。
Androidで実行するときは、忘れずに戻さないと。

というか、はじめからこれがわかってたらちゃんと揃えてたよ orz
この後のアプリは、こういうことがないように気をつけよう。
posted by be-style at 00:02| Comment(0) | Unity

2012年12月14日

[Unity] Androidプラグインを使用した際のビルドエラー(Failed to re-package resources with the following parameters)対策

2012年12月14日にOpenFeintのサービスが停止するということで、
OpenFeintを使っている「1球パターゴルフ」について急いで改修しています。

そのときにハマったビルドエラーが

Failed to re-package resources with the following parameters:

です。
やったことはこの通り。

@プラグインからOpenFeint関連を削除 → .jar ファイルをエクスポート
AUnityの Assets/Plugins/Android/ ディレクトリから、OpenFeint関連のファイルを削除
BAに@のファイルをコピー
Cビルド ← 今ここ(上記ビルドエラー)

ネットで色々調べたのですが、AndroidManifest.xml が悪いという情報がありましたがおかしいところは無し。
ここは素直にエラーの内容を確認してみました。

最後の方に

res\layout\buttons.xml:5: error: Error: No resource found that matches the given name (at 'background' with value '@drawable/openfeint40').

とありました。
なるほど。

プラグインで「buttons.xmlがopenfeint40という画像を参照しようとして見つかってないよ!」

というエラーでした。
つまり、プラグイン側でのbuttons.xmlの消し忘れ orz
OpenFeintを導入するときにたくさんのファイルを使ったからなー。
こういう消し忘れもあるさ。

buttons.xml を削除して再度.jarをエクスポート。
上記手順を再度行ったら無事ビルドが通りました。

ということで、このエラーはリソースの参照エラーでも起こるということでした。
気づいてよかった。
posted by be-style at 23:52| Comment(0) | Unity

2012年12月11日

[Unity] 音が再生されない場合(toSample > fromSample)の対処法

音を再生しようと、Projectにmp3ファイルをインポートして、Inspectorウィンドウ下にある「Preview」横の再生ボタンを押してみました。
だけど音が聞こえない。

コンソール画面には
toSample > fromSample
と表示されてるし、何だろうと思って調べてました。

原因は、Load typeが「Compressed in memory」になっていたことでした↓

スクリーンショット 2012-12-11 8.24.12.png

Load typeを「Decompress on load」に変更してApplyボタンで適用。
そうすると、ちゃんと再生されました↓

スクリーンショット 2012-12-11 8.24.33.png

たしか、推奨って .ogg 形式だったかな。
mp3ファイルの中には.oggに変換しようとしても音が割れたり変換できなかったものがあったので、
そのままmp3ファイルを使っているのでした。
posted by be-style at 08:32| Comment(0) | Unity