适用于Android的card.io Mono(Xamarin Studio)

适用于Android的card.io Mono(Xamarin Studio),第1张

概述有没有人成功创建了一个他们愿意分享的card.io包装器,可以在Mono for Android应用程序中使用,或者有人可以解释我做错了什么? >创建一个新的Android Java Bindings Library项目 >从card.io SDK 3.0.3添加.jar和.so文件,请务必使用现有的文件夹结构 >将以下内容添加到Transforms / EnumMethods.xml以解决编译器 有没有人成功创建了一个他们愿意分享的card.io包装器,可以在Mono for Android应用程序中使用,或者有人可以解释我做错了什么?

>创建一个新的AndroID Java Bindings library项目
>从card.io SDK 3.0.3添加.jar和.so文件,请务必使用现有的文件夹结构
>将以下内容添加到transforms / EnumMethods.xml以解决编译器错误:

<mapPing jni->    <method jni-name="onActivityResult" parameter="p1" clr-enum-type="AndroID.App.Result" /></mapPing>

>在我的主应用程序中添加对上述库的引用

一切都编译,我可以访问card.io类:

using IO.Card.Payment;private voID WireupScanCardbutton(){    Log.DeBUG(this.GetType().name,"WireupScanCardbutton");    this.ScanCardbutton.Click += delegate     {        Log.DeBUG(this.GetType().name,"ScanCard.Click");        var intent = new Intent(this,typeof(CardioActivity));        // required for authentication with card.io        intent.PutExtra(CardioActivity.ExtraAppToken,"<MY PRIVATE TOKEN HERE>");        // Customize these values to suit your needs.        intent.PutExtra(CardioActivity.ExtraNoCamera,false);        intent.PutExtra(CardioActivity.ExtraSuppressManualEntry,true);        intent.PutExtra(CardioActivity.ExtraRequireExpiry,false);        intent.PutExtra(CardioActivity.ExtraRequireCvv,false);        intent.PutExtra(CardioActivity.ExtraRequireZip,false);        // Run the Activity        this.StartActivityForResult(intent,0);                };}

但是,我总是会出现以下错误:

此设备无法使用相机读取卡号

笔记:

>我尝试在几种不同的物理设备上运行
> card.io.jar文件的Build Action为:EmbeddedJar
> .so文件的Build Action为:Embeddednativelibrary
>我已经为Project ItemGroup中的每个.so文件显式设置了Abi

我是AndroID / Xamarin的新手,所以花更多的时间研究而不是编码.

.so文件似乎不在.apk文件中

编辑:

.so文件确实被编译器拾取.
编译后,如果我检查obj / Release /文件夹,则根据支持的Abi类型,有一个子文件夹native_library_imports,其中包含相应子文件夹中的.so文件.

但是,.so文件仍未出现在最终的.apk文件中.

logcat输出:

04-18 08:12:20.462 D/ActivityAddPaymentSource( 5824): ScanCard.Click04-18 08:12:20.472 E/ActivityManager(  191): exception bw.write()java.io.IOException: Transport endpoint is not connected04-18 08:12:20.472 I/ActivityManager(  191): Starting: Intent { cmp=com.onetab.androID/io.card.payment.CardioActivity (has extras) } from pID 582404-18 08:12:20.472 D/PowerManagerService(  191): acquireWakeLock flags=0x1 tag=ActivityManager-Launch04-18 08:12:20.492 D/ActivityAddPaymentSource( 5824): OnPause04-18 08:12:20.492 E/Sensors (  191): GsSensor: line +83 ~~~handle===0~~en==1~~!n04-18 08:12:20.502 E/Sensors (  191): GsSensor::setDelay: line +113 ~~~handle===0~~ns==1553152~~!n04-18 08:12:20.502 E/Sensors (  191): GsSensor::setDelay: line +113 ~~~handle===0~~ns==-2135896001~~!n04-18 08:12:20.542 W/card.io ( 5824): cardioScanErrorNoDeviceSupport: This device cannot use the camera to read card numbers.04-18 08:12:20.572 E/ActivityManager(  191): exception bw.write()java.io.IOException: Transport endpoint is not connected04-18 08:12:20.572 D/PowerManagerService(  191): acquireWakeLock flags=0x1 tag=ActivityManager-Launch04-18 08:12:20.582 E/Sensors (  191): GsSensor: line +83 ~~~handle===0~~en==0~~!n04-18 08:12:20.622 D/ActivityAddPaymentSource( 5824): OnResume

谢谢

解决方法 AndroID logcat应该显示更具体的错误消息,但是这个问题是由于缺少本机库. (对于普通的AndroID项目,它们位于/ libs目录中,具有特定于体系结构的子目录.)

这些是.apk中缺少的.so文件.它们包含所有图像处理逻辑,因此如果不存在,card.io将无法扫描.

总结

以上是内存溢出为你收集整理的适用于Android的card.io Mono(Xamarin Studio)全部内容,希望文章能够帮你解决适用于Android的card.io Mono(Xamarin Studio)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1138424.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存