【问题标题】:Exceptions are not being caught in Android Studio when debugging调试时没有在 Android Studio 中捕获异常
【发布时间】:2019-03-28 13:25:02
【问题描述】:

我已将一个在 Eclipse 上开发的项目导入 Android Studio。 该项目在我的设备上从 Eclipse 运行\调试时运行良好。

在我的设备上从 Android Studio 调试时,应用程序崩溃了,Android Studio 上没有捕获到异常。

当我放置断点时,它们工作正常,所以我知道我正在调试正确的代码:)

编辑:

我再次运行它并在 logcat 中得到以下异常(调试器不应该在代码中的某处停止以显示异常吗?就像在尝试访问文件的行中一样?):

2018-10-24 11:25:26.027 25903-25903/? E/libpersona: Couldn't open the File - /data/system/users/0/personalist.xml - No such file or directory
2018-10-24 11:25:31.735 23290-23301/? E/DatabaseUtils: Writing exception to parcel
    java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/images/media from pid=25858, uid=10314 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
        at android.content.ContentProvider.enforceReadPermissionInner(ContentProvider.java:639)
        at android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:505)
        at android.content.ContentProvider$Transport.query(ContentProvider.java:217)
        at android.content.ContentProviderNative.onTransact(ContentProviderNative.java:102)
        at android.os.Binder.execTransact(Binder.java:682)

虽然我确实在 AndroidMenifest.xml 中设置了权限:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.eibimalul.smartgallery"
    android:versionCode="1"
    android:versionName="1.0" >
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_SOCIAL_STREAM"/>
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

编辑 2:解决方案:

显然我错过了两件事:

  1. 我使用此链接 here 并在 @Pier Giorgio Misley 的评论的帮助下理解的运行时权限
  2. 我缺少对 AndroidManifest.xml 的权限:

    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    

【问题讨论】:

  • 那么在 logcat 中你一无所获?
  • 您在“logcat”底部选项卡右上角的下拉菜单中选择了什么? “仅显示选定的应用程序”?确保你没有在过滤器输入框中写任何东西作为过滤器
  • 我只选择了我的设备、我的应用程序和错误。我看到一条错误消息:“无法打开文件 - /data/system/users/0/personalist.xml - 没有这样的文件或目录”。这不是我的文件。
  • 你必须在运行时请求权限,在清单中添加它们已经不够了
  • 如果你想打破 Android Studio 中的异常:stackoverflow.com/questions/24718958/…

标签: android android-studio


【解决方案1】:

解决办法:

显然我错过了两件事:

  1. 我使用此链接here 理解的运行时权限和 在@Pier Giorgio Misley 评论的帮助下
  2. 我缺少对 AndroidManifest.xml 的权限:

    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    

我不确定这是否是正确的方法(回答我自己的问题),因为我只在 cmets 中得到了少数开发人员的帮助(特别是@Pier Giorgio Misley),但我认为它是将问题标记为已回答很重要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    • 2021-06-20
    • 2013-03-24
    • 2013-07-02
    • 1970-01-01
    相关资源
    最近更新 更多