在 Windows 上使用 Phonegap 3.0,Android 平台,在 Eclipse 中调试。
我能够编译我的旧应用程序,但是当我尝试使用现在是插件的功能时遇到了一个新问题。
我已经通过 CLI 工具添加了我需要的所有插件,并将“功能”数据添加到 config.xml 文件中,所以我假设它们可以被调用。权限也在清单文件中设置。
文件传输
我看到 3.0 的文件传输 API 示例代码没有更改,所以我在代码中保留了相同的调用。所以文件将下载,但随后我收到一个错误,导致我的应用程序崩溃
"
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" />