[Armadillo:05996] Re: Armadillo-440 & Froyoでの音声検索(VoiceSearch.apk)を動作させたい

Shin-ya Koga email@hidden
2010年 10月 27日 (水) 07:39:17 JST


サムシングプレシャスの古賀です。

岡野さん([Armadillo:05991]):
>お忙しい中、ソースの中まで見ていただきありがとうございました。>古賀さん

あ、いえいえ。たまたま、社内に Froyo のビルド環境があったもの
ですから :-)

>native methodというところで、大事なことを思い出しました。
>大分前ですっかり忘れてたのですが、インストールしたapkが他にもあります。
> 
>下記が現象に至る最小インストールです。
>☆が追記部分です。
>
>環境等詳細>
>・Armadillo-440
>・Android 2.2_r1.1 ( solaさんのgitからビルド )
…
>・インストール
> apk push VoiceSearch.apk /system/app
>☆NexusOneの/system/app/GoogleServicesFramework.apkをsmali/baksmaliで作り直し。
>☆インストール
> apk push GoogleServicesFramework.apk /system/app
>☆nexusoneの/system/lib/libspeech.soを/system/libにインストール。
>・ VoiceSearchを起動→
>「Voice Search(com.google.android.voicesearch)が予期せず停止しました。やり直してください」
>
>今、まっさらな状態からやり直して確認しました。
>
>GoogleServicesFramework.apkのインストールを省くと以下のエラーに
>なります。

GoogleServicesFramework.apk を入れないと、
android.content.res.AssetManager ではないところでエラーするように
変わる、ということですね。

>D/AndroidRuntime(  371): Shutting down VM
>W/dalvikvm(  371): threadid=1: thread exiting with uncaught exception
>(group=0x4001d7d8)
>E/AndroidRuntime(  371): FATAL EXCEPTION: main
>E/AndroidRuntime(  371): java.lang.RuntimeException: Unable to start
>activity ComponentInfo{com.google.android.voicesearch/com.google.android.voicesearch.RecognitionActivity}:
>java.lang.UnsupportedOperationException: GoogleSettingsProvider not
>found
>E/AndroidRuntime(  371):        at
>android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
…
> 
>GoogleSettingsProviderがないと言われています。
>OHAのソースにGoogleSettingsProviderがなかったので、NexusOneのを拝借しました。
> 
>   $ cd $ANDROID
>   $ find $ANDROID -iname "*.java" -exec grep -Hn GoogleSettingsProvider {} \;
>   $
> 
>他のアプリでは画像などのリソースを表示できているので大丈夫かと思ったのですが…

VoiceSearch.apk は、Google/OHA からソースが公開されているアプリケー
ションではないので、ソース公開されている Android の API や service/
provider 以外のものに依存している可能性は、大ですよね。

ソース公開されている Android は、OHA 加盟企業が製品に搭載している
Android と全く同じではなく、あくまでも、公開可能な部分だけを公開して
いるのだと思います。従って、OHA 加盟企業の製品で動いているソース非公
開なアプリケーションを、オープンソース版の Android へ持ってきた際に、
全て問題なく動くとは限らないと思います。

# OHA 非加盟企業の Android 搭載製品についても、同様のことが言えると
# 思います。その企業で独自の改変や拡張を行って機能追加し、追加した
# 機能を使うアプリケーションを搭載している場合です。その場合、たとえ
# .apk な Android アプリケーションであっても、他の Android 機器では
# 動作しない筈ですよね。

けっきょく、またお役に立ててなくて、ごめんなさい。

--
古賀信哉 (株)サムシングプレシャス



armadillo メーリングリストの案内