Eibi
Eibi

Reputation: 400

Exceptions are not being caught in Android Studio when debugging

I have imported a project that was developed on Eclipse into Android Studio. The project is working perfectly when running\debugging it from Eclipse on my device.

When debugging from the Android Studio on my device, the application is crashing and no exception is being caught on the Android Studio.

When I place breakpoints, they work fine, so I know i'm debugging the correct code :)

Edit:

I have run it again and got the following Exception in the logcat (shouldn't the debugger stop somewhere in the code to show the Exception? like in the line that tries to access the file?):

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)

Although I do have permissions set in the 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" />

Edit 2: The Solution:

So apparently I was missing 2 things:

  1. run-time permissions which I understood using this link here and with the help of @Pier Giorgio Misley's comment
  2. I was missing permissions on the AndroidManifest.xml:

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

Upvotes: 1

Views: 1008

Answers (1)

Eibi
Eibi

Reputation: 400

The solution:

Apparently I was missing 2 things:

  1. Run-time permissions which I understood using this link here and with the help of @Pier Giorgio Misley's comment
  2. I was missing permissions on the AndroidManifest.xml:

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

I am not sure if that's the right way to do it (answering my own question that is), since I got help from few developers here (@Pier Giorgio Misley in particular) in the comments only, but I thought it is important to mark the question as answered.

Upvotes: 1

Related Questions