我正试图在Xamarin中为SQLCypher for android创建一个绑定,我得到了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项目中获取的,这个有不同的错误。
答案 0 :(得分:2)
您不必自己创建绑定。它们以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/
或强>
我不知道链接罐子的年龄。所以我决定,根据最新的社区版本构建绑定。
我做了什么:
LibraryProjectZip
通过扩展元数据来消除构建错误
<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] https://bintray.com/bintray/jcenter/net.zetetic%3Aandroid-database-sqlcipher/3.3.1-2/view