Cordova-android应用程序在发布时因联系人权限而崩溃

Cordova-android应用程序在发布时因联系人权限而崩溃,android,cordova,android-permissions,cordova-android,Android,Cordova,Android Permissions,Cordova Android,我有一个问题,我找到了原因,但我无法解决 我的cordova应用程序在android 8.0.0上崩溃。我做了一个日志,显示该应用程序正在尝试访问联系人 奇怪的是,我没有联系人插件,也没有在我的应用程序中使用联系人 在logcat上,我有以下错误: 12-11 17:29:42.094 E/AndroidRuntime(5609):java.lang.RuntimeException:java.lang.RuntimeException:java.lang.SecurityException:权

我有一个问题,我找到了原因,但我无法解决

我的cordova应用程序在android 8.0.0上崩溃。我做了一个日志,显示该应用程序正在尝试访问联系人

奇怪的是,我没有联系人插件,也没有在我的应用程序中使用联系人

在logcat上,我有以下错误:

12-11 17:29:42.094 E/AndroidRuntime(5609):java.lang.RuntimeException:java.lang.RuntimeException:java.lang.SecurityException:权限拒绝:从进程记录{6155964 5609:com.pierrickmartelliere.UPHAIRR/u0a210}(pid=5609,uid=10210)打开提供者com.android.providers.contacts.contacts Provider2需要android.permission.READ_联系人或android.permission.WRITE_联系人

“我什么都试过了,”他补充道


对于我的
config.xml
,它在构建时很好地添加到了AndroidManifest.xml上,但我仍然得到了错误

如前所述,我尝试了两个标签
使用权限
使用权限sdk
,但运气不佳

我的cordova android版本是6.2.3

我还尝试了cordova插件权限,如在DeviceRady listener中:

var permissions = cordova.plugins.permissions;
    permissions.requestPermission(
      permissions.READ_CONTACTS,
      function(success) {},
      function(error) {}
    );
    permissions.requestPermission(
      permissions.WRITE_CONTACTS,
      function(success) {},
      function(error) {}
    );
但一切都没有改变。该应用程序在“deviceready”事件触发之前崩溃,因此我在运行时无法执行任何操作

如上所述,如果我将targetSdkVersion更改为低于23(甚至25),崩溃将消失,但我无法将其上载到google play,因为play console不接受targetSdkVersion<26

此外,如果我从应用程序设置手动授权联系人访问,并强制停止并重新启动应用程序,则它会工作。这让我快发疯了

在此方面提供一些帮助将非常感谢


感谢所有愿意花时间阅读或回答的人。

我终于在cordova android github上发布了一个问题。我很快得到了答案,那就是:

将cordova android更新至7.1.4


在实际授予权限之前,你不应该做任何需要这些权限的事情(大概是在调用
success
函数时;我不熟悉该库)。是的,兄弟,但问题是在应用程序启动之前,我实际上无法做任何事情。这就像我没有控制台日志或任何选择。除了logcat,我根本无法访问任何日志,因为在我能够在开发者工具的设备类别中看到该应用之前,该应用程序正在崩溃。设备就绪事件cathcer中添加的所有内容都未执行,因为该应用程序之前已崩溃。我从未说过类似的话,但感谢您的有用评论。您是如何克服链接中指出的人行横道问题的?为我的项目更新cordova是一个相当大的问题,很多事情都失败了,有没有可能有人知道如何在不更新cordova的情况下修复此问题?有人知道cordova版本对此修复的更改是什么吗?