在phonegap应用程序上进行开发,在最新版本的android上运行时像灵符一样,但在5.1时崩溃了,并在6.0.1上冻结了 该应用程序的主要功能是拨打给定号码的电话(经过一些DDBB查询)。 在清单中,我们已经声明了必要的权限,但是文档指出,在5.1版本之前,权限的工作方式有所不同。 这是6.0.1版的堆栈跟踪:
04-03 17:54:45.643 14337-14392/my.domain.myappname I/Timeline: Timeline: Activity_launch_request intent:Intent { act=android.content.pm.action.REQUEST_PERMISSIONS pkg=com.google.android.packageinstaller (has extras) } time:19474557
04-03 17:54:45.661 14337-14337/my.domain.myappname D/CordovaActivity: Paused the activity.
04-03 17:54:45.692 14337-14337/my.domain.myappname D/SystemWebChromeClient: file:///android_asset/www/js/index.js: Line 59 : Success:Call Successful
04-03 17:54:45.692 14337-14337/my.domain.myappname I/chromium: [INFO:CONSOLE(59)] "Success:Call Successful", source: file:///android_asset/www/js/index.js (59)
04-03 17:54:45.830 14337-14337/my.domain.myappname W/CordovaPlugin: Attempted to send a second callback for ID: CordovaCall1155645867
Result was: "Call Failed"
04-03 17:54:45.830 14337-14337/my.domain.myappname W/CordovaPlugin: Attempted to send a second callback for ID: CordovaCall1155645867
Result was: "Call Successful"
04-03 17:54:45.831 14337-14337/my.domain.myappname D/CordovaActivity: Resumed the activity.
04-03 17:54:45.849 14337-14337/my.domain.myappname I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@f9e4f3e time:19474764
这是android 5.1的堆栈跟踪:
04-03 18:59:11.229 19608-19608/my.domain.myappname D/SystemWebChromeClient: file:///android_asset/www/js/index.js: Line 192 : {"CordovaCall":{}}
04-03 18:59:11.229 19608-19608/my.domain.myappname I/chromium: [INFO:CONSOLE(192)] "{"CordovaCall":{}}", source: file:///android_asset/www/js/index.js (192)
04-03 18:59:11.262 19608-19716/my.domain.myappname E/AndroidRuntime: FATAL EXCEPTION: pool-1-thread-1
Process: my.domain.myappname, PID: 19608
java.lang.NoSuchMethodError: No virtual method requestPermissions([Ljava/lang/String;I)V in class Landroid/app/Activity; or its super classes (declaration of 'android.app.Activity' appears in /system/framework/framework.jar)
at org.apache.cordova.CordovaInterfaceImpl.requestPermissions(CordovaInterfaceImpl.java:234)
at org.apache.cordova.CordovaInterfaceImpl.requestPermission(CordovaInterfaceImpl.java:228)
at com.dmarc.cordovacall.CordovaCall.callNumberPhonePermission(CordovaCall.java:307)
at com.dmarc.cordovacall.CordovaCall$2.run(CordovaCall.java:221)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
04-03 18:59:11.284 19608-19608/my.domain.myappname D/SystemWebChromeClient: file:///android_asset/www/js/index.js: Line 59 : Success:Call Successful
04-03 18:59:11.284 19608-19608/my.domain.myappname I/chromium: [INFO:CONSOLE(59)] "Success:Call Successful", source: file:///android_asset/www/js/index.js (59)
在这里您具有版本和示例的库链接: https://www.npmjs.com/package/cordova-call#send-a-phone-call
我们按原样使用电话示例,并且该示例在最新版本中有效。 有人可以阐明这个问题以及如何解决吗?