UnityのAndroidネイティブプラグイン作成で困った困ったの巻

UnityのAndroidネイティブプラグイン作成で困った困ったの巻アイキャッチアプリ
この記事は約4分で読めます。

今Unity作成しているアプリで“音声認識機能”を使い文字を出力することを取り組んでいるのでいるのですが、これが突然使えなくなって困ったお話です。

自分の場合は回避方法が意外なところにあったのでそちら利用することにしました。いやまぁ、やりたいことが出来るのは良いのですが悩んでた日々のことを考えるとね……。というオチもあります(笑)

困ったことが結局解決しないお話です。申し訳ありませんが解決方法を知りたい方にはお力になれません。
スポンサーリンク

Androidネイティブプラグイン

aarの用意

まずはAndroid Studioを使用して“aarファイル”を用意しUnityとAndroidを連携させます。

aarファイルとは?
AndroidのリソースとAndroidManifestファイルを含むフォーマット。

参考にさせていただいたのはこちらのサイト様。

後に出てくる“音声認識”でも自分のやりたかったこと殆どやっていらっしゃったのでメッチャ参考にさせていただきました。ありがとうございます。

Minimum SDKのバージョンには注意を払いつつ。自分の場合は幸運なのか、致命的なエラーもなくaarデータを作成することはできました。

音声認識機能を準備

同じく以下の記事を参考にさせていただきました。本当にありがたい。

実際にこの記事を参考にしたのは今年の4月ごろで、その頃は自分のアプリでも問題なくしっかり動いていたんです。記事の正確さとわかりやすさで、自分でもネイティブプラグイン化してUnityでも使用できたわけです。

問題が起きたのはその後

夏の間はちょっと他の作業などをしていたので特に触っていなかったのですが、つい最近改めてアプリの開発を始めたときに機能していないことに気がついたのでした。

Unityではビルドは通ってはいて、アプリの起動も問題なくAndroidでできる。単純に音声認識が始まらない。

はてはてはて・・・・・・? 何が原因だぁと考えて思い当たるのはUnityのバージョンをあげたことかなぁ?とは思ってるのですが仮定にすぎず確信はない。

じゃあどこまで動いてる? 調べていくと、「AndroidJavaClass」でプラグイン内のクラスを読むあたり以下が機能してない様子。

もしかしてパッケージ名・クラス名間違ってるのか? いろいろ試したけどやっぱりダメっぽい。そもそも普通にクラス指定してあげるだけだよねぇ??

いっそaarではなくjarで試してみる? これも結局ダメでした。

もっと機能が簡素なaarではどうか? うごかねぇ……。

他他他とまぁ見当違いの事もあわせて結構いろいろやってみたさね。それでもウンともスンとも起動しやがらねぇ~。

ここで改めて伝えておきますが、『参考にしたサイト様の方法は問題なく正確な記事である』という事は覚えておいてもらいたいのである。実際に自分の環境で最初に試した頃はしっかり機能していました。あのときの感動は忘れもしないよ!すばらしい記事でございます。
単純に今の自分の環境ではなんらか問題で機能しなくなった(自分がいたらんことを知らないところでしたのだろう)という事。

じゃぁどうしたの?(オチ)

いろいろと、どうしよう。あーしよう。と悩んでた昨今、ふと入力の為のキーボードの上部横にあるアイコンに気がついた。

そうマイクのアイコン

あーAndroidのキーボードにマイクのアイコンあったなぁ~(脳みそボケボケ)と思いつつ、ちょっと押してみる。

ピコン!(あの音)
「なんでも話してみてください」の表示
そして、音声を認識して文字の出力をするAndroid

……ッ!?(覚醒)

えーこれやんけ、これで出来るやんけー。なんも悩む必要なんてなかったんやー(血涙ッ)

――というわけで、どんなわけで。

そんなところに常時出ていたのね(マイクのアイコン)……ありがとうAndroid。

すべてはこれで事足りた。というね(放心)




おわりに

結局は自分のアプリでやりたかったことは、Androidにふつーにあるキーボード入力にひっそりあるマイクアイコンの音声入力で事足りたわけでaarは必要なくなってしまいました。

まぁネイティブプラグインがどんなものでどうやれば良いのかが、ほんのちょっとでも理解できたのが収穫ってことで、その日は泣きながら寝ました。シクシク。



コメント