问题描述
我正在为Oculus Quest 2(Android版本10)制作一个应用程序(非vr),它需要ACTION_USAGE_ACCESS_SETTINGS权限。
在常规Quest(Android版本7)上,我只是做了startActivity(new Intent(Settings.ACTION_USAGE_ACCESS_SETTINGS));
,但效果很好。
但是,当我尝试执行Quest 2时,出现以下崩溃错误:
10-23 16:12:10.637 8665 8665 E AndroidRuntime: FATAL EXCEPTION: main
10-23 16:12:10.637 8665 8665 E AndroidRuntime: Process: com.android.settings,PID: 8665
10-23 16:12:10.637 8665 8665 E AndroidRuntime: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean android.widget.SearchView.isIconified()' on a null object reference
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at com.android.settings.applications.manageapplications.ManageApplications.onSaveInstanceState(ManageApplications.java:511)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at androidx.fragment.app.Fragment.performSaveInstanceState(Fragment.java:2799)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at androidx.fragment.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManagerImpl.java:2276)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at androidx.fragment.app.FragmentManagerImpl.saveAllState(FragmentManagerImpl.java:2335)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at androidx.fragment.app.FragmentController.saveAllState(FragmentController.java:151)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at androidx.fragment.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:513)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at com.android.settings.SettingsActivity.onSaveInstanceState(SettingsActivity.java:472)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at android.app.Activity.performSaveInstanceState(Activity.java:2037)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1485)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at android.app.ActivityThread.callActivityOnSaveInstanceState(ActivityThread.java:5312)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at android.app.ActivityThread.callActivityOnStop(ActivityThread.java:4638)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at android.app.ActivityThread.performStopActivityInner(ActivityThread.java:4602)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at android.app.ActivityThread.handleStopActivity(ActivityThread.java:4677)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at android.app.servertransaction.StopActivityItem.execute(StopActivityItem.java:41)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2024)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:107)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at android.os.Looper.loop(Looper.java:214)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:7385)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
10-23 16:12:10.637 8665 8665 E AndroidRuntime: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
与我的应用没有直接关系(来自崩溃日志),除了崩溃是在尝试打开“使用情况统计信息”权限活动时发生的。 Here's a video到底发生了什么,何时崩溃以及here's the full log。
权限在清单中用<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" tools:ignore="ProtectedPermissions"/>
是因为Quest 2不想让用户启用此权限,如果是这样,我还能如何获得最热门应用程序的软件包名称?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)