小编Eri*_*ric的帖子

System.InvalidOperationException:必须设置值。为 SQLite 设置空参数

我在 .NETStandard 2.0 和 .NET Core 2.1.0 上使用 Microsoft.Data.Sqlite 2.1.0 与本地 SQLite 数据库交互。SQLitePCL 是在异常中提到的,也是一个依赖项。

我希望能够将参数的值设置为,NULL但是当我这样做时,我得到一个异常,即参数的“必须设置值”。

SqliteCommand cd = cn.CreateCommand();
cd.CommandText = sql;
cd.Parameters.AddWithValue("@param1", null); //This fails
cd.Parameters.AddWithValue("@param2", DBNull.Value); //This also fails
cd.Parameters.AddWithValue("@param3", ""); //This insert an empty string, not a NULL
cd.ExecuteNonQuery(); //The exception is thrown on this line
Run Code Online (Sandbox Code Playgroud)

完全例外:

{System.InvalidOperationException: Value must be set.
  at Microsoft.Data.Sqlite.SqliteParameter.Bind (SQLitePCL.sqlite3_stmt stmt) [0x0004c] in <56cfa09aae23467e945f1a64a1f893bb>:0 
  at (wrapper remoting-invoke-with-check) Microsoft.Data.Sqlite.SqliteParameter.Bind(SQLitePCL.sqlite3_stmt)
  at Microsoft.Data.Sqlite.SqliteParameterCollection.Bind (SQLitePCL.sqlite3_stmt stmt) [0x00017] in <56cfa09aae23467e945f1a64a1f893bb>:0 
  at (wrapper remoting-invoke-with-check) Microsoft.Data.Sqlite.SqliteParameterCollection.Bind(SQLitePCL.sqlite3_stmt)
  at …
Run Code Online (Sandbox Code Playgroud)

c# sqlite

7
推荐指数
1
解决办法
2847
查看次数

Visual Studio 的 AndroidApkSigner 在密钥库中找不到密钥

在 Visual Studio 中创建 APK 时出现此错误:

Failed to load signer "signer #1": C:\...\googleplay.keystore entry "googleplay" does not contain a key
Run Code Online (Sandbox Code Playgroud)

我是熟悉 Visual Studio 的长期 ASP.NET 开发人员,但这是我的第一个 Xamarin 项目。(我没有使用 Android Studio。)我正在尝试将 Android 版本部署到 Google Play。我从来没有上传过APK到Google Play,所以我无法使用Visual Studio的自动部署;我必须首先按照 Google 和 Microsoft 的说明执行手动部署。

我正在使用 JDK 1.8 运行 Visual Studio 2017 15.7.5(最新)。我的项目使用 NETStandard.Library 2.0.3、Xamarin.Forms 3.1.0 和 Microsoft.EntityFrameworkCore 2.1.1。

这个问题类似于这个没有答案的问题,但我从 Visual Studio 中收到错误。如果这是重复的,我深表歉意,但我无法添加有关该问题的其他详细信息。

我正在使用 Google Play 应用签名。我已经通过 Google Play 创建了一个密钥。我下载了 .der 格式的证书。我使用 keytool(来自 c:\Program Files\Java\jdk1.8.0_172\bin)使用以下命令将 .der 文件转换为 .keystore:

keytool -importcert -alias googleplay -file …
Run Code Online (Sandbox Code Playgroud)

keytool visual-studio xamarin.android google-play apksigner

6
推荐指数
1
解决办法
6143
查看次数

Xamarin自动登录凭据用于Google Play的发布前报告

我正在Visual Studio 2017中使用Xamarin Forms 3构建Android应用程序并将其发布到Google Play。Google Play提供了自动测试功能(发布前的报告),但无法通过我的登录屏幕。

Google Play可以输入“用户名资源名称”,“密码资源名称”和“登录按钮资源名称”。我为每个控件(txtEmailtxtPassbtnSignIn)都提供了Xamarin x:name ,但是显然这是不正确的,因为自动测试仪仍然无法进入并且甚至没有尝试。

这是我的SignIn.xaml:

<Entry x:Name="txtEmail" Placeholder="email address" Keyboard="Email" />
<Entry x:Name="txtPass" IsPassword="True" />
<Button x:Name="btnSignIn" Text="Sign In" Clicked="OnSignInClicked" />
Run Code Online (Sandbox Code Playgroud)

我已经找到了这些SO问题(在这里hereHere),但是它们并没有在Xamarin Forms上下文中解决我的问题。第一个链接似乎特别有用,但我不知道将XML代码放在哪里。

在我看来,Xamarin / C#被“编译”为Android代码并生成这些XML文件。我该如何处理?

我了解.APK文件只是一个ZIP文件。将发送到Google Play的APK文件重命名为.zip,我可以浏览内容,但是看不到任何有意义的XML代码。

目前,我添加了一个额外的“演示”按钮,单击后会将用户名和密码放入字段中,然后单击“登录”按钮。Google的自动化测试仪喜欢这种方法并且可以使用,但是对于人工测试来说这是一个糟糕的主意,我想删除这种解决方法。

google-play xamarin.forms

5
推荐指数
1
解决办法
196
查看次数