我在 .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) 在 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) 我正在Visual Studio 2017中使用Xamarin Forms 3构建Android应用程序并将其发布到Google Play。Google Play提供了自动测试功能(发布前的报告),但无法通过我的登录屏幕。
Google Play可以输入“用户名资源名称”,“密码资源名称”和“登录按钮资源名称”。我为每个控件(txtEmail,txtPass和btnSignIn)都提供了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问题(在这里,here和Here),但是它们并没有在Xamarin Forms上下文中解决我的问题。第一个链接似乎特别有用,但我不知道将XML代码放在哪里。
在我看来,Xamarin / C#被“编译”为Android代码并生成这些XML文件。我该如何处理?
我了解.APK文件只是一个ZIP文件。将发送到Google Play的APK文件重命名为.zip,我可以浏览内容,但是看不到任何有意义的XML代码。
目前,我添加了一个额外的“演示”按钮,单击后会将用户名和密码放入字段中,然后单击“登录”按钮。Google的自动化测试仪喜欢这种方法并且可以使用,但是对于人工测试来说这是一个糟糕的主意,我想删除这种解决方法。