【发布时间】:2017-01-20 10:32:38
【问题描述】:
正如标题所说,我想在一个用 Java 编写的 Android 应用程序和一个使用 Xamarin 用 C# 编写的应用程序之间共享一个 Sqlite 数据库。我可以在两个 Java 应用程序 (With the help of this question) 之间成功共享数据库,但是当我在 Xamarin 中尝试相同的操作时,我收到以下错误:
Android.Database.Sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
我认为我有两个问题。
-
我没有正确设置共享用户 ID。目前我将以下属性放在我的主要活动之上。
[Register("my.user.id")]我尝试在 Manifest 文件中使用
android:sharedUserId="my.user.id",但这会引发错误并且不会部署到我的设备上。 我不知道应用程序的整个签名是如何工作的。因此,也许我的设备将这两个应用程序视为来自每个设备的不同发布者,并且不允许两者共享上下文。
编辑:
只是想添加我如何使用相同的证书签署两个应用程序以供将来参考。
Android 证书是正常的"C:\Users\userName\.android\debug.keystore",Xamarin 证书是正常的"C:\Users\userName\AppData\Local\Xamarin\Mono for Android\debug.keystore"。我首先构建了 Xamarin 应用程序,因此我将 debug.keystore 文件从 xamarin 文件夹复制到了 android 文件夹。 (我确信它会反过来工作,但还没有测试过)
【问题讨论】:
标签: c# android sqlite xamarin xamarin.android