代码之家  ›  专栏  ›  技术社区  ›  Pierrick Martellière

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

  •  1
  • Pierrick Martellière  · 技术社区  · 7 年前

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

    我的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)需要android.permission.READ\u联系人或android.permission.WRITE\u联系人

    <config-file parent="/manifest" target="AndroidManifest.xml"> <uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> </config-file>

    对我 config.xml

    我试了两个标签 uses-permission 和 uses-permission-sdk 如上所述 here 但是没有运气。

    我的cordova android版本是6.2.3

    var permissions = cordova.plugins.permissions;
        permissions.requestPermission(
          permissions.READ_CONTACTS,
          function(success) {},
          function(error) {}
        );
        permissions.requestPermission(
          permissions.WRITE_CONTACTS,
          function(success) {},
          function(error) {}
        );
    

    但一切都没有改变。该应用程序在“deviceready”事件触发之前崩溃,因此我在运行时无法执行任何操作。

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

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

    1 回复  |  直到 7 年前
        1
  •  0
  •   Pierrick Martellière    7 年前

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

    将cordova android更新至7.1.4!

    https://github.com/apache/cordova-android/issues/606