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

imudak email@hidden
2010年 10月 25日 (月) 17:53:39 JST


はじめまして。岡野と申します。

現在Armadillo-440上でAndroid 2.2(Froyo)を動かしています。

Voice Search(音声検索)をArmadillo上でも動作さようと試行錯誤中なのですが、
実行時エラーが取れずに行き詰っています。
もし同様の試みをされている方がいらっしゃいましたら、アドバイスをお願いしたいと思います。

詳細はメール末尾に添付しますが、apkに含まれているはずのリソースが見つからなくて落ちているようです。
(Alsaの方のエラーも出ていますが、致命的ではなさそうです。)

該当のリソースは、展開したapkの中にはちゃんと含まれています。
実行時に展開される場所(?不明)に無いのではないかと疑っているのですが、
どこに展開されているのかよく分かっていません。実行時に直接メモリに展開されるのかもしれません。


環境等詳細>
・Armadillo-440
・Android 2.2_r1.1 ( solaさんのgitからビルド )
   http://goo.gl/5P3H
・上記にalsa-lib、alsa-utils、alsa_soundを加えてビルド。
・NexusOne(2.2.1)のVoiceSearch.apk&VoiceSearch.odexを吸出し、
 ・smaliでodex->dex変換->apk作り直し。
  http://code.google.com/p/smali/
 ・インストール
  apk push VoiceSearch.apk /system/app
・ VoiceSearchを起動→
 「Voice Search(com.google.android.voicesearch)が予期せず停止しました。やり直してください」

以下logcat抜粋>
Audio系エラー:
E/ALSALib (   30):
external/alsa-lib/src/control/setup.c:565:(add_elem) Cannot obtain
info for CTL elem (MIXER,'Speaker Playback Switch',0,0,0): No such
file or directory
E/AudioRecord(  367): Recording parameters are not supported:
sampleRate 16000, channelCount 1, format 1
E/AudioRecord-JNI(  367): Error creating AudioRecord instance:
initialization check failed.
E/AudioRecord-Java(  367): [ android.media.AudioRecord ] Error code
-20 when initializing native AudioRecord object.

Resourcesエラー:
E/AndroidRuntime(  367): FATAL EXCEPTION: main
E/AndroidRuntime(  367):
android.content.res.Resources$NotFoundException: File
res/raw/disambig.wav from drawable resource ID #0x7f050002
E/AndroidRuntime(  367):        at
android.content.res.Resources.openRawResourceFd(Resources.java:860)
E/AndroidRuntime(  367):        at
android.media.MediaPlayer.create(MediaPlayer.java:641)
E/AndroidRuntime(  367):        at
com.google.android.voicesearch.RecognitionActivity.safeCreatePlayer(RecognitionActivity.java:699)
E/AndroidRuntime(  367):        at
com.google.android.voicesearch.RecognitionActivity.createMediaPlayers(RecognitionActivity.java:686)
E/AndroidRuntime(  367):        at
com.google.android.voicesearch.RecognitionActivity.access$1200(RecognitionActivity.java:68)
E/AndroidRuntime(  367):        at
com.google.android.voicesearch.RecognitionActivity$UiThreadHandler.handleMessage(RecognitionActivity.java:308)
E/AndroidRuntime(  367):        at
android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(  367):        at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(  367):        at
android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime(  367):        at
java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(  367):        at
java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(  367):        at
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime(  367):        at
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime(  367):        at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(  367): Caused by: java.io.FileNotFoundException:
This file can not be opened as a file descriptor; it is probably
compressed
E/AndroidRuntime(  367):        at
android.content.res.AssetManager.openNonAssetFdNative(Native Method)
E/AndroidRuntime(  367):        at
android.content.res.AssetManager.openNonAssetFd(AssetManager.java:426)
E/AndroidRuntime(  367):        at
android.content.res.Resources.openRawResourceFd(Resources.java:857)
E/AndroidRuntime(  367):        ... 13 more


以上よろしくお願いします。



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