[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 メーリングリストの案内