【问题标题】:Fatal Exception Error: main致命异常错误:主要
【发布时间】:2016-05-29 01:35:28
【问题描述】:

当我尝试运行我最近在 android studios 模拟器 nexus 5 api23 上找到的音乐播放器教程中的程序时,出现错误。 错误是:

05-28 21:01:23.267 2937-2937/com.tunein.bryantyoung.tunein E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.tunein.bryantyoung.tunein, PID: 2937
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tunein.bryantyoung.tunein/com.tunein.bryantyoung.tunein.MainActivity}: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/audio/media from pid=2937, uid=10066 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2622)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2683)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1440)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:6066)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:770)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:660)
Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/audio/media from pid=2937, uid=10066 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission()
at android.os.Parcel.readException(Parcel.java:1666)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:183)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:135)
at android.content.ContentProviderProxy.query(ContentProviderNative.java:421)
at android.content.ContentResolver.query(ContentResolver.java:502)
at android.content.ContentResolver.query(ContentResolver.java:444)
at com.tunein.bryantyoung.tunein.MainActivity.getSongList(MainActivity.java:197)
at com.tunein.bryantyoung.tunein.MainActivity.onCreate(MainActivity.java:104)
at android.app.Activity.performCreate(Activity.java:6584)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2575)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2683) 
at android.app.ActivityThread.-wrap12(ActivityThread.java) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1440) 
at android.os.Handler.dispatchMessage(Handler.java:102) 
at android.os.Looper.loop(Looper.java:148) 
at android.app.ActivityThread.main(ActivityThread.java:6066) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:770) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:660)

不确定当我运行导致异常的程序时到底发生了什么。 main.xml 文件为:

<menu xmlns:android="http://schemas.android.com/apk/res/android"


    <item
        android:id="@+id/action_shuffle"
        android:icon="@drawable/rand"
        android:orderInCategory="1"
        android:showAsAction="always"
        android:title="Shuffle"/>
    <item
        android:id="@+id/action_end"
        android:icon="@drawable/end"
        android:orderInCategory="2"
        android:showAsAction="always"
        android:title="End"/>
</menu>

我认为问题出在 android:showAsAction="always" 行上,但是当我尝试将 android 更改为 app 并添加 xmlns:app="http://schemas.android.com/apk/res-auto"&gt; 时,main 仍然存在同样的问题

教程是Here 谢谢

【问题讨论】:

标签: android android-studio android-activity


【解决方案1】:

你的问题在这里:

 Caused by: java.lang.SecurityException: Permission Denial: reading com.android.providers.media.MediaProvider uri content://media/external/audio/media from pid=2937, uid=10066 requires android.permission.READ_EXTERNAL_STORAGE, or grantUriPermission() 

您的应用必须请求访问文件的权限,请尝试将其添加到您的应用清单中:

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

更多信息:https://developer.android.com/training/permissions/index.html

【讨论】:

  • 我同意 goatcheeze 这一行 MainActivity.java:197 is reading a protected external storage 所以听从他的建议。
  • 添加这行代码后问题仍然存在,可能是模拟器?
猜你喜欢
  • 1970-01-01
  • 2014-11-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-04
  • 2018-04-30
  • 2012-06-02
相关资源
最近更新 更多