Android R Preview 1 引入了一个名为QUERY_ALL_PACKAGES. 许可文件如下:
允许查询设备上的任何普通应用程序,无论清单声明如何。
有没有人弄清楚这实际上是做什么的?
我已经尝试在模拟器映像上运行以下内容,并且该权限对其中任何一个都没有影响:
packageManager.queryIntentActivities(intent, 0)packageManager.getInstalledPackages(0)我的应用程序有大约 20k 每日活跃用户,并且发生了一次致命崩溃,仅影响 Android 11 用户,我无法确定根本原因。
堆栈跟踪是
Fatal Exception: android.app.RemoteServiceException: Attempt to invoke virtual method 'int com.android.server.wm.TaskDisplayArea.getDisplayId()' on a null object reference
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2054)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:250)
at android.app.ActivityThread.main(ActivityThread.java:7755)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:958)
Run Code Online (Sandbox Code Playgroud)
100% 受影响的用户是 android 11 摩托罗拉设备 [3 种不同的摩托罗拉型号],并且 100% 的应用程序在后台运行
堆栈跟踪显示这与在屏幕上显示图像有关,但错误发生在许多不同的情况下,我知道[我的]通用代码可能是原因
有人面临这个问题吗?
是否有任何已知的摩托罗拉相关问题可能是原因?
有什么方法可以更好地调试它并找出根本原因吗?
在使用目标 SDK 29 的 Android 应用程序上从 5.11.0 更新到 Facebook Audience 6.2.0 后,我在一小部分 Android 11 设备上看到了大量崩溃报告。据发生此崩溃并已多次重新安装应用程序进行测试的用户称,崩溃发生在启动后几秒钟,第一次能够看到加载屏幕,然后在第一次之后立即看到。
#00 pc 00000000004dcd84 /apex/com.android.art/lib64/libart.so (art::OatHeader::IsDebuggable() const+124)
#00 pc 00000000004dd3f4 /apex/com.android.art/lib64/libart.so (art::OatFileBase::ShouldUnquickenVDex() const+56)
#00 pc 00000000004dd594 /apex/com.android.art/lib64/libart.so (art::OatFileBase::LoadVdex(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)+80)
#00 pc 00000000004e1594 /apex/com.android.art/lib64/libart.so (art::OatFile::Open(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, bool, art::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const>, art::MemMap*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)+468)
#00 pc 00000000004e7d78 /apex/com.android.art/lib64/libart.so (art::OatFileAssistant::OatFileInfo::GetFile()+696)
#00 pc 00000000004e7038 /apex/com.android.art/lib64/libart.so (art::OatFileAssistant::OatFileInfo::Status()+76)
#00 …Run Code Online (Sandbox Code Playgroud) 内部版本号为 RQ1A.201205.003 或更高版本的 Pixel 设备上会出现以下错误。
\n我想知道错误原因以及如何处理。
\n这是一个错误还是规格更改?
\xe2\x96\xa0code
\n ContentResolver resolver = getContentResolver();\n String order = "date ASC limit 100";\n Cursor cursor = resolver.query(\n CallLog.Calls.CONTENT_URI,\n null,\n null,\n null,\n order);\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x96\xa0错误
\n"Invalid token limit,LINE:142,Method:readExceptionFromParcel Exception:Invalid token limit"\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x96\xa0发生错误的内部版本号
\nhttps://support.google.com/pixelphone/thread/87641266\n\xe3\x83\xbbRQ1A.201205.003\n\xe3\x83\xbbRQ1A.201205.008\n\xe3\x83\xbbRQ1A.201205.011\n\nhttps://support.google.com/pixelphone/thread/93232095\n\xe3\x83\xbbRQ1A.210105.002\n\xe3\x83\xbbRQ1A.210105.003\n\nhttps://support.google.com/pixelphone/thread/96244000\n\xe3\x83\xbbRQ1A.210205.004\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x96\xa0如果替换为以下代码,则不会出现错误。
\nbuildUpon().appendQueryParameter("limit", "100")\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x96\xa0附加信息\n使用官方文档方法实现时,没有发生错误,但该LIMIT子句不起作用(检索了所有记录)。
// Request 20 records starting at row index 30.\n Bundle queryArgs = new Bundle();\n queryArgs.putInt(ContentResolver.QUERY_ARG_OFFSET, 30);\n queryArgs.putInt(ContentResolver.QUERY_ARG_LIMIT, 20);\n \n Cursor cursor = getContentResolver().query(\n contentUri, // …Run Code Online (Sandbox Code Playgroud) 我在许多 Android 11 设备上遇到此崩溃。目标 SKD 为 29,构建工具为 29.0.2。
还有其他人有这个问题吗?我们能做些什么而不是等待新的 sdk 发布。由于这次崩溃,我失去了数千名用户。
Facebook 有类似的问题,但使用 6.2.1 修复它,请参阅此线程:Facebook Audience 6.2.0 /apex/com.android.art/lib64/libart.so (art::OatHeader::IsDebuggable() const+124) on安卓 11
#00 pc 00000000004be3ec /apex/com.android.art/lib64/libart.so (art::OatHeader::IsDebuggable() const+64)
#00 pc 00000000004bea98 /apex/com.android.art/lib64/libart.so (art::OatFileBase::ShouldUnquickenVDex() const+56)
#00 pc 00000000004bec38 /apex/com.android.art/lib64/libart.so (art::OatFileBase::LoadVdex(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, bool, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)+80)
#00 pc 00000000004c30ec /apex/com.android.art/lib64/libart.so (art::OatFile::Open(int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, bool, bool, art::ArrayRef<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const>, art::MemMap*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >*)+472)
#00 pc 00000000004c9bc8 …Run Code Online (Sandbox Code Playgroud) 我正在尝试在带有 PlayServices 的 Pixel 模拟设备中使用 Android R 进行调试,但“允许 USB 调试”对话框在显示后立即关闭,因此我无法单击“允许”以 AS 连接到 AVD。我转到 Android 中的开发人员选项以关闭并再次打开 USB 调试,但对话框在显示后立即关闭。我尝试了 kill/star ADB 并卸载所有 AS/user configs/etc 并重新安装,但没有解决。有人有线索吗?
android android-virtual-device android-studio avd-manager android-11
有人知道 Android 11 中调整大小标志的替代品吗?我的布局有 EditText,它在键盘弹出后被隐藏,因为我不能使用标志下方的
getActivity().getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
Run Code Online (Sandbox Code Playgroud)
谢谢
我有一个 AccessibilityService,如果用户通过 Android 系统用户界面打开和关闭它,它就会中断。我只希望用户能够通过我自己的 Activity 禁用/启用 AccessibilityService,该 Activity 将正确打开和关闭它。
在我在较新的设备上测试我的应用程序之前,我以前从未遇到过此功能。在 Android 11 设备上突然出现了一个切换“辅助功能快捷方式”的选项。这将在导航按钮的底角添加一个按钮,或者允许用户通过同时按住两个音量按钮来切换 AccessibilityService。对于我的应用程序,它说它将在导航按钮附近添加切换按钮。
如何删除该选项?
在Android 11中,当用户对任何权限请求多次选择“拒绝”选项时,系统会将其标记为“永久拒绝”。一旦永久拒绝,用户必须在设置中启用。从此时开始shouldShowRequestPermissionRationale()返回false
权限窗口有“拒绝”、“全部允许”、“仅允许本次”三个选项。但在设置中存在“拒绝”、“始终允许”、“每次询问”。
如何查找用户何时从设置中选择“每次询问我”,because、checkSelfPermission()returnPackageManager.PERMISSION_DENIED和shouldShowRequestPermissionRationale()return false。这次我想显示权限窗口,而不是移动到设置。类似于谷歌地图权限的东西
在android 11之前,我能够使用这种方法无线调试应用程序
问题是 Android 11引入了无线调试,上述方法无法按预期工作。而且无线调试模式除非我的android手机连接到wifi才能打开,所以它无法工作,因为我想使用目标手机的热点进行无线调试。
有什么可能的解决办法吗?或者即使手机没有连接wifi也可以打开无线调试模式吗?
android-11 ×10
android ×8
adbwireless ×1
admob ×1
android-10.0 ×1
android-12l ×1
avd-manager ×1
crash ×1
facebook ×1
java ×1
keyboard ×1
motorola ×1