首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AndroidX.Core.Content.FileProvider.GetUriForFile NullReferenceException

AndroidX.Core.Content.FileProvider.GetUriForFile NullReferenceException
EN

Stack Overflow用户
提问于 2022-11-20 10:50:29
回答 1查看 76关注 0票数 1

嗨,我在安装下载的APK文件时有这样的问题。

有些代码是在System.NullReferenceException:的对象引用未设置为对象的实例时发生的。

代码语言:javascript
运行
复制
var file = new Java.IO.File(filePath);
if (Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.N)
{
    System.Diagnostics.Debug.WriteLine(MainActivity.Instance.ApplicationContext.PackageName + ".fileProvider");
//thats were error occures
    Uri apkUri = AndroidX.Core.Content.FileProvider.GetUriForFile(MainActivity.Instance,
        MainActivity.Instance.ApplicationContext.PackageName + ".fileProvider", file);
    Intent intentS = new Intent(Intent.ActionInstallPackage);
    intentS.SetData(apkUri);
    intentS.SetFlags(ActivityFlags.GrantReadUriPermission);
    MainActivity.Instance.StartActivity(intentS);
}

还有我的MainActivity

代码语言:javascript
运行
复制
 [Activity(Label = "Dyspozycja Rewizor",
        Icon = "@mipmap/icon",
        Theme = "@style/MainTheme",
        MainLauncher = true,
        //Name ="Dysp.Rew.MainActivity",
        ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation | ConfigChanges.UiMode | ConfigChanges.ScreenLayout | ConfigChanges.SmallestScreenSize)]
    [ContentProvider(
        new[] { "${applicationId}.provider" },
        Name = "AndroidX.Core.Content.FileProvider",
        Exported = false,
        GrantUriPermissions = true)]
    [MetaData(
        "android.support.FILE_PROVIDER_PATHS",
        Resource = "@xml/file_paths")]
    public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
    {
        internal static MainActivity Instance { get; private set; }

        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            Instance = this;
            Xamarin.Essentials.Platform.Init(this, savedInstanceState);
            global::Xamarin.Forms.Forms.Init(this, savedInstanceState);

            DependencyService.Register<IInstallerService, InstallerService>();

            LoadApplication(new App());
        }
        public override void OnRequestPermissionsResult(int requestCode, string[] permissions,
            [GeneratedEnum] Android.Content.PM.Permission[] grantResults)
        {
            Xamarin.Essentials.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);

            base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
        }
    }

有几天我都搞不清到底发生了什么。我试图通过添加AndroidManifest.xml来编辑

代码语言:javascript
运行
复制
<application android:debuggable="true" android:label="Dyspozycja Rewizor">
    <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/file_paths"></meta-data>
    </provider>
  </application>

还有我的file_paths.xml

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

我试图通过属性或AndroidManifest添加文件提供程序,但两者都没有尝试。

代码语言:javascript
运行
复制
 Intent intent = new Intent(Intent.ActionView);
 intent.SetDataAndType(Uri.FromFile(new Java.IO.File(filePath)), "application/vnd.android.packagearchive");
 intent.SetFlags(ActivityFlags.NewTask); 
 // in this line exception occures
 MainActivity.Instance.StartActivity(intent);

有人能帮忙吗?提前感谢

EN

回答 1

Stack Overflow用户

发布于 2022-11-21 06:49:54

一般来说,NullReferenceException exception的摘要如下:

对象所在的名称空间中没有references.

  • The对象,因此不会发生instantiated.

  • An异常,实例化失败的对象为null。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74507446

复制
相关文章

相似问题

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