繁体   English   中英

Xamarin C#.jar包装

[英]Xamarin C# .jar wrapping

我正在尝试在Xamarin中创建android的SQLCypher绑定,但出现4个我似乎无法克服的错误。

4个错误是:

错误CS0534:“ BulkCursorToCursorAdaptor”未实现继承的抽象成员“ AbstractCursor.GetType(int)”(CS0534)(SQLCyper)

public sealed partial class BulkCursorToCursorAdaptor : global::Info.Guardianproject.Database.AbstractWindowedCursor {

错误CS0534:“ MatrixCursor”未实现继承的抽象成员“ AbstractCursor.GetType(int)”(CS0534)(SQLCyper)

public partial class MatrixCursor : global::Info.Guardianproject.Database.AbstractCursor {

错误CS0738:“ AbstractCursor”未实现接口成员“ ICrossProcessCursor.Window”。 'AbstractCursor.Window'无法实现'ICrossProcessCursor.Window',因为它没有匹配的返回类型'CursorWindow'。 (CS0738)(SQLCyper)

public abstract partial class AbstractCursor : global::Java.Lang.Object, global::Android.Database.ICrossProcessCursor {

错误CS0534:“ SQLiteCursor”未实现继承的抽象成员“ AbstractCursor.GetType(int)”(CS0534)(SQLCyper)

public partial class SQLiteCursor : global::Info.Guardianproject.Database.AbstractWindowedCursor 

如您所见,3是相似的。

我的Xamarin是最新的,目标平台是Android 4.1 jellybean。

jar文件的来源是: http : //www.java2s.com/Code/Jar/s/Downloadsqlcipherjar.htm

我正在尝试使用的另一个jar文件是: http : //www.trojanpc.co.za/sqlcipher.jar

我从一个装有这个jar的android项目中获取了这个代码,其中有不同的错误。

您不必自己创建绑定。 它们可以作为Xamarin组件使用。

Android: https//components.xamarin.com/gettingstarted/sqlcipher-for-xamarin-android

iOS: https//components.xamarin.com/view/sqlcipher-for-xamarin-ios

常规信息: https : //www.zetetic.net/sqlcipher/sqlcipher-for-xamarin/

要么

我不知道链接的jar有多大。 因此,我决定基于最新的社区版本构建绑定。

我做了什么:

  1. 将android-database-sqlcipher-3.3.1-2.aar [1]添加到jar文件夹
  2. 将其构建动作设置为LibraryProjectZip
  3. 通过扩展元数据摆脱了构建错误

     <metadata> <attr path="/api/package[@name='net.sqlcipher']/class[@name='AbstractCursor']/method[@name='getWindow' and count(parameter)=0]" name="managedReturn">Android.Database.CursorWindow</attr> <remove-node path="/api/package[@name='net.sqlcipher']/interface[@name='Cursor']/method[@name='getType' and count(parameter)=1 and parameter[1][@type='int']]"></remove-node> </metadata> 

    这会将Window属性的返回值设置为Android.Database.CursorWindow因为接口需要它。 并删除冗余的getType方法。

    1. 编译没有错误。
    2. 将其推送到github存储库: https : //github.com/smstuebe/xamarin-sqlcipher

我没有测试。 如果发现错误,请随时发送请求请求。

[1] https://bintray.com/bintray/jcenter/net.zetetic%3Aandroid-database-sqlcipher/3.3.1-2/view

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM