【问题标题】:Class Not Found Exception for ContentProvider找不到 ContentProvider 的类异常
【发布时间】:2022-01-16 20:39:17
【问题描述】:

我正在尝试为我的 Xamarin.Android 应用程序编写内容提供程序。

我有我的 ContentProvder 类 (./ContentProviders/SitesProvider.cs):

namespace ContentProviders
{
    [ContentProvider(new string[] { ContentProviders.SitesProvider.AUTHORITY })]
    public class SitesProvider : ContentProvider
    {
        public const string AUTHORITY = "com.xamarin.sample.ContentProviders.SitesProvider";
        static string BASE_PATH = "TableName";
        public static readonly Uri CONTENT_URI = Uri.Parse("content://" + AUTHORITY + "/" + BASE_PATH);

        public override bool OnCreate()
        {
            return true;
        }

        ...
}

在我的 AndroidManifest.xml 中,我已将以下内容添加到我的元素中

<provider android:name="com.xamarin.sample.ContentProviders.SitesProvider" android:authorities="com.xamarin.sample.ContentProviders.SitesProvider" android:exported="true"></provider>

当我尝试运行我的应用程序时,我收到以下错误消息:

Java.lang.RuntimeException:'无法获取提供程序 com.xamarin.sample.ContentProviders.SitesProvider:java.lang.ClassNotFoundException:找不到类“com.xamarin.sample.ContentProviders .SiteProvider" 路径:DexPathList[[zip file "/data/app/com.xamarin.sample-STvUsF9R8PqrLEnQciN42g==/base.apk"],nativeLibraryDirectories=[/data/app/com.xamarin.sample-STvUsF9R8PqrLEnQciN42g== /lib/arm64、/data/app/com.xamarin.sample-STvUsF9R8PqrLEnQciN42g==/base.apk!/lib/arm64-v8a、/system/lib64、/hw_product/lib64、/system/product/lib64、/prets /lib64]]'

【问题讨论】:

    标签: android xamarin xamarin.android android-contentprovider


    【解决方案1】:

    您为已创建的类添加的属性与您手动添加到 AndroidManifest 的属性冲突。你应该只做其中之一。

    所以这意味着:

    [ContentProvider(new string[] { ContentProviders.SitesProvider.AUTHORITY })]
    

    将在构建时自动添加到 AndroidManifest。

    您可以向其中添加更多信息,例如要使用的导出和命名:

    [ContentProvider(new string[] { ContentProviders.SitesProvider.AUTHORITY }, Exported = true, Name = "com.xamarin.sample.ContentProviders.SitesProvider")]
    

    您可以在构建时检查obj/Debug/android 文件夹中生成的清单。

    【讨论】:

    • 当然!感谢工厂指出这一点。
    猜你喜欢
    • 1970-01-01
    • 2020-06-13
    • 2016-06-19
    • 2010-12-03
    • 2013-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多