2011-12-28 13 views
5

PhoneGapでスターターアプリを作成しようとしています。私は、この行にこだわっ:PhoneGapエラー - "Androidでプロパティ 'キャプチャ'が未定義です。

navigator.device.capture.captureAudio(onSuccess, onError, {limits:1, duration:5});

それは、iOSの上で正常に動作しますが、Androidのエミュレータ上でこのエラーがスローされます。

未定義

のプロパティ 'キャプチャ' を読み取ることができませんここにはnavigatorオブジェクトがあります。このエラーの原因となっているのはdeviceプロパティではないことに注意してください。

{ 
    "language": "en-US", 
    "product": "Gecko", 
    "mimeTypes": { 
     "length": 0 
    }, 
    "appVersion": "5.0 (Linux; U; Android 4.0.3; en-us; sdk Build/MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", 
    "plugins": { 
     "length": 0 
    }, 
    "onLine": true, 
    "connection": { 
     "type": 0 
    }, 
    "platform": "Linux armv7l", 
    "vendor": "Google Inc.", 
    "appCodeName": "Mozilla", 
    "geolocation": {}, 
    "cookieEnabled": true, 
    "appName": "Netscape", 
    "productSub": "20030107", 
    "userAgent": "Mozilla/5.0 (Linux; U; Android 4.0.3; en-us; sdk Build/MR1) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30", 
    "vendorSub": "" 
} 

そしてここPhonegap.jsがロードされた直後PhoneGapオブジェクトだ

{ 
    "commandQueue": [], 
    "commandQueueFlushing": false, 
    "_constructors": [ 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null, 
     null 
    ], 
    "documentEventHandler": {}, 
    "windowEventHandler": {}, 
    "resources": { 
     "base": true, 
     "debugconsole": true, 
     "position": true, 
     "acceleration": true, 
     "accelerometer": true, 
     "battery": true, 
     "camera": true, 
     "device": true, 
     "capture": true, 
     "contact": true, 
     "file": true, 
     "filetransfer": true, 
     "geolocation": true, 
     "compass": true, 
     "media": true, 
     "notification": true, 
     "orientation": true, 
     "sms": true, 
     "telephony": true, 
     "network": true, 
     "splashscreen": true 
    }, 
    "available": false, 
    "sessionKey": 0, 
    "callbackId": 0, 
    "callbacks": {}, 
    "callbackStatus": { 
     "NO_RESULT": 0, 
     "OK": 1, 
     "CLASS_NOT_FOUND_EXCEPTION": 2, 
     "ILLEGAL_ACCESS_EXCEPTION": 3, 
     "INSTANTIATION_EXCEPTION": 4, 
     "MALFORMED_URL_EXCEPTION": 5, 
     "IO_EXCEPTION": 6, 
     "INVALID_ACTION": 7, 
     "JSON_EXCEPTION": 8, 
     "ERROR": 9 
    }, 
    "mediaObjects": {} 
} 

任意のアイデアどのようにこれを乗り越えるために(それはdevice: trueが言うに注意してください)?

+0

あなたは[PhoneGapののAPI](http://docs.phonegap.com/en/1.3.0/index.html)ここでページを指すでしたそれは 'navigator.device'オブジェクトとPhoneGapがそれをどのようにして増やしているかを記述します...? –

+0

これは[こちら](http://docs.phonegap.com/en/1.3.0/phonegap_media_capture_capture.md.html#capture.captureAudio) – Mrchief

+0

シミュレータでオーディオキャプチャ機能を使用できるのでしょうか?デバイス上でテストし、同じ結果が得られるかどうかを確認してください – sciritai

答えて

2

これは私が今までに遭遇した最もダッシュな解決策です!

Android用JSは、とは異なり、iOS対応のです。ファイルの名前は - phonegap-x.x.x.jsですが、同じ名前になっています。それを推測するためのポイントは、他のすべてのモバイルプラットフォームでは違うでしょう。

プラットフォームごとに異なるJSを使用する必要があることを理解していますが、どこかで言及するのはどうですか?

AndroidフォルダーからJSをドラッグすると、すべてが所定の位置に収まりました。その答えは、この質問への

ありがとう:deviceready won't fire in Phonegap 1.0.0 on Android

+0

私はちょうど私の人生の30分を無駄にして、このポストを見つけました。どのように愚か:)感謝! –

0

wwwディレクトリのphonegap.jsファイル名がindex.htmlの参照と一致していますか? phonegap.jsをphonegap-1.3.0.jsに変更すると、the API docsの完全な例が私のHTCエボで実行されます

+0

はい、あります。また、iOSでも動作します(iOSとAndroidバージョンのコードは変更されません)。 – Mrchief

+0

おそらくあなたは、問題を示す単一のhtmlファイルを掲示するべきです –

+0

あなたは彼らのこんにちは世界の例を挙げることができます。この行をコピーしてボタンをクリックするとこの問題が表示されます。 – Mrchief

関連する問題