首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安装在物理设备错误上的App崩溃: DISPLAY_NAME列为null

安装在物理设备错误上的App崩溃: DISPLAY_NAME列为null
EN

Stack Overflow用户
提问于 2022-01-19 12:38:17
回答 1查看 2.7K关注 0票数 0

我创建了一个应用程序,并试图在一个物理设备上安装它。当我试着运行这个设备时,它立即崩溃了。该应用程序在仿真器中运行良好。我的手机是三星Galaxy A30 (安卓11)。该应用程序的minSdkVersion为23,targetSdkVersion为31。我的应用程序允许用户创建他们的科目列表,等级,并为他们的班级创建警报。

我从手机上得到的完全错误:

代码语言:javascript
复制
com.aefyr.sai.model.filedescriptor.ContentUriFileDescriptor$BadContentProviderException: DISPLAY_NAME column is null
    at com.aefyr.sai.model.filedescriptor.ContentUriFileDescriptor.name(ContentUriFileDescriptor.java:30)
    at com.aefyr.sai.model.apksource.DefaultApkSource.getApkLocalPath(DefaultApkSource.java:47)
    at com.aefyr.sai.model.apksource.FilterApkSource.getApkLocalPath(FilterApkSource.java:60)
    at com.aefyr.sai.model.apksource.FilterApkSource.nextApk(FilterApkSource.java:28)
    at com.aefyr.sai.installer2.impl.rootless.RootlessSaiPackageInstaller.install(RootlessSaiPackageInstaller.java:93)
    at com.aefyr.sai.installer2.impl.rootless.RootlessSaiPackageInstaller.lambda$enqueueSession$0$RootlessSaiPackageInstaller(RootlessSaiPackageInstaller.java:70)
    at com.aefyr.sai.installer2.impl.rootless.-$$Lambda$RootlessSaiPackageInstaller$ivyAcunEgIkYlu_dB2vN6MOWZPU.run(Unknown Source:6)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:462)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    at java.lang.Thread.run(Thread.java:923)
EN

回答 1

Stack Overflow用户

发布于 2022-01-19 15:59:49

我认为原因在于供应商。在Android 11中,您不能再正常使用一些文件路径。使用以下内容创建一个文件provider.xml

代码语言:javascript
复制
    <?xml version="1.0" encoding="utf-8"?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <external-path
        name="external_files"
        path="." />
</paths>

添加必要的路径(阅读有关内容提供程序的内容)。在使用Uri之后,如下所示:

代码语言:javascript
复制
 Uri fileUri = FileProvider.getUriForFile(
                requireContext(),
                BuildConfig.APPLICATION_ID + ".provider",
                file);

在宣言中添加:

代码语言:javascript
复制
<provider
            android:name="androidx.core.content.FileProvider"
            android:authorities="${applicationId}.provider"
            android:exported="false"
            android:grantUriPermissions="true">
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/provider" />
        </provider>

您可以提供出现此错误的代码吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70770717

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档