2013-09-02 22 views
6

Làm việc trên Windows với Phonegap 3.0, nền tảng Android, gỡ lỗi trong Eclipse.Phonegap - Nâng cấp lên 3.0 sự cố với các tính năng API

Tôi đã có thể tải ứng dụng cũ của mình để biên dịch nhưng tôi đã gặp phải sự cố mới khi cố gắng sử dụng tính năng hiện là plugin.

Tôi đã thêm tất cả các plugin tôi cần thông qua công cụ CLI và đã thêm dữ liệu "tính năng" vào tệp config.xml, vì vậy tôi cho rằng chúng có sẵn để được gọi. Các điều khoản cũng được đặt trong tệp kê khai.

FileTransfer

tôi thấy rằng File Transfer dụ API mã đã không thay đổi trong 3.0, vì vậy tôi rời khỏi cuộc gọi cùng trong mã của tôi. Vì vậy, tệp sẽ tải xuống nhưng sau đó tôi gặp lỗi khiến ứng dụng của tôi gặp sự cố

" 
D/CordovaLog(12883): file:///android_asset/www/phonegap.js: Line 932 : Uncaught Error: Error calling method on NPObject! 
" 

Tôi đã tìm kiếm lỗi này và dường như không có giải pháp chuẩn?

Có thể có một cách mới để gọi các tính năng nằm trong các plugin? Bởi vì tôi không thể chơi một tập tin âm thanh mà không nhận được lỗi là tốt. Tệp âm thanh sẽ phát nhưng sẽ gây ra lỗi.

" 
09-01 20:13:17.274: W/PluginManager(13279): THREAD WARNING: exec() call to Media.startPlayingAudio blocked the main thread for 23ms. Plugin should use CordovaInterface.getThreadPool(). 
" 

Tôi đã đọc lại API phương tiện và không đề cập đến hồ bơi chuỗi. Tôi đang làm tất cả các chương trình của tôi trong javascript.

Về cơ bản có bao giờ tôi sử dụng tính năng plugin, ứng dụng có lỗi chính. Tôi đã cố gắng sử dụng tính năng ghi âm thanh của tôi trong ứng dụng làm việc trước đây của tôi, và khi tôi gọi dấu chấm hết cho ghi âm của tôi nó ném một lỗi

" 
09-01 20:10:04.206: E/AudioPlayer(13279): FAILED renaming /mnt/sdcard/tmprecording.3gp to /sdsub/myapp/Recorded/myRecording.amr 
" 

Tôi đã thử nghiệm api chuyển tập tin một lần nữa thông qua tập tin của tôi loại bỏ chức năng và nó cũng thất bại

" 
09-01 20:16:00.884: W/PluginManager(13279): THREAD WARNING: exec() call to File.remove blocked the main thread for 19ms. Plugin should use CordovaInterface.getThreadPool(). 
" 

có vẻ như bản chất thiết yếu về cách hoạt động của tính năng đã thay đổi nhưng không được ghi chép ở bất kỳ đâu. Các cuộc gọi API dường như không thay đổi so với các phiên bản cũ hơn, chỉ cách bạn cài đặt các tính năng API khác nhau, nhưng tôi đã làm theo hướng dẫn đó và cài đặt chúng.

Có hướng dẫn API mới nào mà tôi đã bỏ lỡ không? vì tài liệu API Phonegap không thay đổi về cách các tính năng này được gọi trong 3.0.

Cảm ơn.

tập tin cấu hình của tôi

<feature name="App"> 
    <param name="android-package" value="org.apache.cordova.App" /> 
</feature> 
<feature name="NetworkStatus"> 
    <param name="android-package" value="org.apache.cordova.networkinformation.NetworkManager" /> 
</feature> 
<feature name="File"> 
    <param name="android-package" value="org.apache.cordova.file.FileUtils" /> 
</feature> 
<feature name="FileTransfer"> 
    <param name="android-package" value="org.apache.cordova.filetransfer.FileTransfer" /> 
</feature> 
<feature name="Media"> 
    <param name="android-package" value="org.apache.cordova.media.AudioHandler" /> 
</feature> 
<feature name="Notification"> 
    <param name="android-package" value="org.apache.cordova.dialogs.Notification" /> 
</feature> 
<feature name="SplashScreen"> 
    <param name="android-package" value="org.apache.cordova.splashscreen.SplashScreen" /> 
</feature> 
<feature name="Compass"> 
    <param name="android-package" value="org.apache.cordova.deviceorientation.CompassListener" /> 
</feature> 

tập tin Manifest của tôi

<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.RECORD_AUDIO" /> 
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
+0

Bạn có thể sửa lỗi này không? Bạn có thể xác nhận rằng thư mục có tệp cordova.js cũng chứa tệp cordova_plugins.js và thư mục plugin (thư mục này sẽ có nhiều thư mục con hơn cho mỗi plugin được sử dụng). Ngoài ra, mở cordova_plugins.js tập tin và kiểm tra xem nó đề cập đến tất cả các plugin cũng được đề cập trong tập tin config.xml –

+0

Tôi đã không thể sửa lỗi này. Tôi không chắc chắn lý do tại sao ứng dụng của tôi hoạt động mà không có bất kỳ lỗi nào trong 3.0 trước nhưng có tất cả các lỗi này trong 3.0. Tệp cordova_plugins.js nằm bên cạnh tệp cordova.js và thư mục plugins có tất cả các thư mục con cho các plugin mà tôi đã thêm vào. Bất kỳ đề xuất về cách tôi có thể sửa chữa những lỗi này? – user1017063

+0

Xin chào, bước 1 hãy chắc chắn rằng cordova.js của bạn đang chạy và ok, bước 2. Bạn phải thử plugin trong thiết bị đầu cuối gốc, không giả lập, không phải trình duyệt, bước 3 trong cordova 3.3 tôi chưa thêm bất kỳ tính năng nào để định cấu hình , cordova làm cho chính nó trong xây dựng. Bước 4. IOS có vấn đề với plugin, bạn phải loại bỏ nền tảng và cài đặt plugin đầu tiên, sau khi thêm nền tảng ios một lần nữa. Tôi hy vọng điều này có thể giúp bạn. – JSG33kC0d3

Trả lời

0

trong khi bạn đang nâng cấp ứng dụng của bạn, các tập tin phonegap.js phải suppport tất cả các kịch bản chức năng. bạn có thể sử dụng phiên bản phù hợp của tệp javascript như phiên bản phonegap.0.9.5.js trở lên. Có thể là do phonegap.js không chứa chức năng cần thiết mà ứng dụng cần. Nếu bạn thấy API, chúng có thẻ điện thoại .X.Y.Z.js. để bạn có thể thử một cái cao hơn

+0

Cảm ơn bạn đã trả lời. Không chắc chắn những gì bạn đang cố gắng để có được mặc dù ... Bình luận của bạn không có gì để làm với câu hỏi của tôi ... Có lẽ tôi không hiểu những gì bạn đang cố gắng để nói. Khi bạn cập nhật phonegap, tệp .js chính cũng được cập nhật. Vì thế ? – user1017063

Các vấn đề liên quan