在Windows上使用Phonegap 3.0,Android平台,在Eclipse中调试。
我可以编译我的旧应用程序,但当我尝试使用一个现在是插件的功能时,我遇到了一个新问题。
我已经通过CLI工具添加了所有需要的插件,并将"功能"数据添加到config.xml文件中,因此我认为它们可以被调用。权限也在清单文件中设置。
文件传输
我看到文件传输API示例代码对于3.0没有改变,所以我在代码中保留了相同的调用。所以文件会下载,但我收到一个错误,使我的应用程序崩溃
"
D/CordovaLog(12883): file:///android_asset/www/phonegap.js: Line 932 : Uncaught Error: Error calling method on NPObject!
"
我对这个错误进行了一些搜索,但似乎没有标准的解决方案?
也许有一种新的方法可以调用插件中的功能?因为播放音频文件时也会出现错误。声音文件将播放,但会导致错误。
"
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().
"
我重新阅读了媒体API,没有提到线程池。我所有的编程都是用javascript编写的。
本质上,无论我在哪里使用插件功能,应用程序都会出现重大错误。我试着在以前使用的应用程序中使用我的录音功能,当我停止录音时,它会抛出一个错误
"
09-01 20:10:04.206: E/AudioPlayer(13279): FAILED renaming /mnt/sdcard/tmprecording.3gp to /sdsub/myapp/Recorded/myRecording.amr
"
我通过文件删除功能再次测试了文件传输api,它也没有通过
"
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().
"
功能工作的本质似乎发生了变化,但在任何地方都没有记录下来。API调用与旧版本相比似乎没有变化,只是安装API功能的方式有所不同,但我遵循了该指南并安装了它们。
有没有新的API指南我错过了?因为Phonegap API文档没有改变3.0中这些功能的调用方式。
谢谢。
我的配置文件
<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>
我的清单文件
<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" />
在升级应用程序时,phonegap.js
文件必须支持所有功能脚本。您也可以使用合适版本的javascript文件,如phonegap.0.9.5.js
或更高版本。这可能是因为phonegap.js没有包含应用程序所需的必要函数。如果你看到API,他们有phonegap.X.Y.Z.js.,所以你可以尝试更高的