2011-12-28 14 views
5

पर फ़ोन अपैप के साथ स्टार्टर ऐप बनाने की कोशिश कर रहे हैं, "अपरिभाषित की संपत्ति 'कैप्चर नहीं पढ़ी जा सकती है। मैं इस लाइन पर अटक कर रहा हूँ:फोनगैप त्रुटि - एंड्रॉइड

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

यह iOS पर ठीक काम करता है लेकिन एंड्रॉयड एमुलेटर पर इस त्रुटि फेंकता है:

पढ़ा नहीं जा सकता गुण अपरिभाषित

की 'कब्जा' त्रुटि के समय 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 वस्तु के तुरंत बाद Phonegap.js लोड होते ही है (नोटिस यह कहता है device: true)

{ 
    "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": {} 
} 

कोई भी विचार कैसे इस अतीत को पाने के लिए?

+0

आप [PhoneGap एपीआई] में पृष्ठ पर बात कर सके (http://docs.phonegap.com/en/1.3.0/index.html) जहां यह 'navigator.device' ऑब्जेक्ट का वर्णन करता है और फ़ोनगैप इसे कैसे बढ़ा रहा है ...? –

+0

यह [यहां] (http://docs.phonegap.com/en/1.3.0/phonegap_media_capture_capture.md.html#capture.captureAudio) – Mrchief

+0

क्या ऑडियो कैप्चर कार्यक्षमता सिम्युलेटर पर उपलब्ध होनी चाहिए? डिवाइस पर परीक्षण करें और देखें कि क्या आपको एक ही परिणाम मिलता है – sciritai

उत्तर

2

ठीक है, यह सबसे डरावना समाधान है जिसे मैंने कभी ठोकर दिया है!

एंड्रॉइड के लिए जेएस आईओएस के लिए अलग है। फ़ाइलों को समान नाम दिया गया है - phonegap-x.x.x.js। यह अनुमान लगाने के लिए कोई अंक नहीं है कि यह हर दूसरे मोबाइल प्लेटफार्म के लिए अलग होगा।

मैं समझता हूं कि आपको विभिन्न प्लेटफ़ॉर्म के लिए अलग-अलग जेएस रखना होगा, लेकिन कहीं और इसका उल्लेख करने के बारे में कैसे?

एक बार जब मैंने एंड्रॉइड फ़ोल्डर से जेएस खींच लिया, तो सब कुछ ठीक हो गया।

जवाब के लिए इस सवाल का धन्यवाद: deviceready won't fire in Phonegap 1.0.0 on Android

+0

मैंने अपने जीवन के 30 मिनट बर्बाद कर दिए, फिर इस पोस्ट को मिला। कितना मूर्ख :) धन्यवाद! –

0

क्या आपकी www निर्देशिका में phonegap.js फ़ाइल नाम index.html संदर्भ से मेल खाता है? एक बार जब मैं phonegap.js को फोनगैप-1.3.0.जेएस में बदलता हूं, तो the API docs से मेरा उदाहरण एचटीसी ईवो

+0

हां यह करता है। साथ ही, यह आईओएस पर काम करता है (आईओएस और एंड्रॉइड संस्करण के बीच कोई कोड परिवर्तन नहीं)। – Mrchief

+0

शायद आपको एक ही एचटीएमएल फाइल पोस्ट करनी चाहिए जो –

+0

को प्रदर्शित करती है, आप अपना हैलो वर्ल्ड उदाहरण ले सकते हैं, बटन क्लिक पर इस लाइन को कॉपी करने के लिए कॉपी करें और आपको समस्या दिखाई देगी। – Mrchief

संबंधित मुद्दे