这个Activity班有一个setContentView()方法.该PopupWindow班有一个getContentView()方法,但没有别的一样.有没有其他方法来获取活动的主要内容视图?
用户使用此错误跟踪报告我的应用程序崩溃
java.lang.SecurityException: com.android.phone from uid 10134 not allowed to perform OP_READ_PHONE_STATE
at android.os.Parcel.readException(Parcel.java:1620)
at android.os.Parcel.readException(Parcel.java:1573)
at com.android.internal.telephony.IPhoneSubInfo$Stub$Proxy.getVoiceMailNumberForSubscriber(IPhoneSubInfo.java:858)
at android.telephony.TelephonyManager.getVoiceMailNumber(TelephonyManager.java:2383)
at android.telephony.TelephonyManager.getVoiceMailNumber(TelephonyManager.java:2366)
Run Code Online (Sandbox Code Playgroud)
到目前为止,只有一个用户报告了此问题.数千名其他用户正在运行此版本的应用程序,没有明显的问题.
当我们调用TelephonyManager.getVoiceMailNumber()时抛出异常.此操作记录为必需的READ_PHONE_STATE权限,该权限已被绝对正式授予.
我跟踪了android.apps.AppOpsManager类的OP_READ_PHONE_STATE权限,但无法确切地知道它不满意的内容.
任何人都可以解释发生了什么以及需要做些什么来解决问题.
谢谢,-Ken
谷歌最近宣布他们将开始限制发布不针对最新API级别版本的Android应用程序.我支持这种更改,但我需要一些特殊情况例外,并且没有找到合适的论坛来请求这些.我知道这不是它,但希望有人能指出我应该去的地方.
我发布了一个已经存在很长时间的应用程序,并且仍有大量用户在Gingerbread下运行它.它还使用了许多支持库,这些库的最新版本(针对最新API级别的库)不再支持Gingerbread设备.最终结果是我无法构建和支持API级别9的apk,如果它针对的是大于23的SDK级别.这将是11月份不会被接受的.
我确实有计划解决这个问题.那是为每次更新开始分发两个apk文件.一个针对最新的API级别并且具有大约21的最小API.另一个将支持旧设备,并且目标和最大API为20,最小API为9.问题是较旧的目标API apk不会被Play商店接受,除非我能说服某人他们应该继续接受任何目标和最高API级别相同的应用.
正在测试新的Android 6自动备份/还原功能,并在还原后立即遇到我的应用崩溃的问题。进一步的调查显示,未在主Activity.onCreate()方法之前调用Application.onCreate()初始化方法。这让我震惊,因为它是新的自动恢复逻辑中的一个可能的错误。但是我想我会在将其报告为正式bug之前先征求意见。
我经历的事件顺序是
亚行shell bmgr fullbackup net.anei.cadpage
adb shell bmgr恢复
结果日志显示Activity.onCreate()方法在Application.onCreate()被调用之前被调用。该应用程序崩溃是因为Application.onCreate()方法未执行某些关键的初始化。
有什么明显的我想念的东西吗???
FWIW,当崩溃完全正常后,第二次启动该应用程序。
我自己无法重现此问题,但到目前为止有5位用户报告了此问题。我最近确实发布了一个应用程序更新,将目标SDK从27更改为28,我当然也参与其中。所有5位用户都在某种Pixel设备上运行某种Android 9。我也是
该应用程序通过调用设置通知并调用NotificationManager.notify()来响应警报情况。此通知引用了一个尝试播放位于外部存储器上的音频文件的通知通道。我的应用程序确实在清单中包含READ_EXTERNAL_STORAGE权限。但是由于它本身不能访问外部存储中的任何内容,因此它没有要求用户授予该权限。
当我在Pixel上执行此操作时,效果很好。但是有5位用户报告说它抛出了异常
java.lang.RuntimeException: Unable to start activity ComponentInfo{net.anei.cadpage/net.anei.cadpage.CadPageActivity}: java.lang.SecurityException: UID 10132 does not have permission to content://media/external/audio/media/145 [user 0]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2914)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3049)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1809)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6680)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.lang.SecurityException: UID 10132 does not have permission to content://media/external/audio/media/145 [user 0]
at android.os.Parcel.createException(Parcel.java:1950)
at android.os.Parcel.readException(Parcel.java:1918)
at android.os.Parcel.readException(Parcel.java:1868)
at android.app.INotificationManager$Stub$Proxy.enqueueNotificationWithTag(INotificationManager.java:1559)
at android.app.NotificationManager.notifyAsUser(NotificationManager.java:405)
at android.app.NotificationManager.notify(NotificationManager.java:370)
at android.app.NotificationManager.notify(NotificationManager.java:346)
at net.anei.cadpage.ManageNotification.show(ManageNotification.java:186)
at net.anei.cadpage.ReminderReceiver.scheduleNotification(ReminderReceiver.java:46)
at net.anei.cadpage.ManageNotification.show(ManageNotification.java:161)
at …Run Code Online (Sandbox Code Playgroud) notifications android android-securityexception android-9.0-pie