适用于AWS SDK的Xamarin绑定

时间:2018-03-25 00:02:10

标签: xamarin xamarin.android xamarin-binding

摘要

  • 当绑定构建在aws-java-sdk之上的JAR / AAR时,您是否必须 EmbeddedReferenceJar JAR下面的所有库,包括aws-java- sdk,当降低到低级别时,AWS SDK for .NET具有该功能。

  • 是否有任何Xamarin软件包(Xamarin.Forms或Xamarin.Android)为AWS用户池,Google+,Facebook身份验证提供程序提供带有登录/注册按钮的开箱即用身份验证UI

上下文

我想在Xamarin.Android应用程序中使用aws-android-sdk-auth-ui中的SignInUI,它为您提供了一个开箱即用的用于身份验证的UI。我已经设置了AWS UserPoolAWS IdentityPool

不幸的是,AWS SDK for .NET没有公开基于aws-android-sdk-auth-ui(在.NET中也不可用)构建的等效aws-android-sdk-auth-core java包,它建立在{{1最后aws-android-sdk-core

我想过绑定一个java库。我将为从maven Central下载的aws-java-sdk创建一个Xamarin绑定项目。我按照Binding an .AAR教程进行了操作。它构建,但生成的aws-android-sdk-auth-ui.aar文件缺少某些类。我使用aws-android-sdk-auth-ui.dll打开了dll,在Ildasm.exe命名空间中我只找到了Com.Amazonaws.Mobile.Auth.UIAuthUIConfiguration,显然错过了BuildConfig类。

是否期望当您为引用其他SignInUI的{​​{1}}文件构建绑定项目时,构建成功但是静默不会为引用缺少的jar的java类生成包装类?我猜想构建会成功并且会包含所有类的包装器,但是在运行时会在需要缺少jar的代码路径中发生故障。

好的,我将.aar.jar添加到绑定项目中,作为 EmbeddedReferencedJar 。这没有帮助,生成的aws-android-sdk-auth-core.jar也缺少相同的类。下面粘贴的构建输出确实指向错误参考罐的方向。见下文。

我需要走多远,是否还需要一直嵌入80MB aws-android-sdk-core.jar

我有以下构建输出:

dll
  • aws-java-sdk.jar表示找不到1>JARTOXML : warning J2X9001: Couldn't load class com/amazonaws/mobile/auth/ui/SignInActivity : java.lang.NoClassDefFoundError: android/support/v7/app/AppCompatActivity 1>JARTOXML : warning J2X9001: Couldn't load class com/amazonaws/mobile/auth/ui/SignInUI$1 : java.lang.NoClassDefFoundError: com/amazonaws/mobile/auth/core/DefaultSignInResultHandler 1>JARTOXML : warning J2X9001: Couldn't load class com/amazonaws/mobile/auth/ui/SignInActivity$SignInProviderResultHandlerImpl : java.lang.NoClassDefFoundError: com/amazonaws/mobile/auth/core/signin/SignInProviderResultHandler 。那些应该绑定的是什么?在Xamarin.Android中,这些课程都在 android/support/v7/app/AppCompatActivity Nuget包。但是这个罐子并不知道它在Xamarin.Android中运行。这是否意味着我还需要EmbedReferenceJar所有原生的Android内容?这是一个深深的兔子洞......
  • com.android.support:appcompat:那个不应该出错,我确实用 EmbbededRefenceJar
  • 嵌入了aws-android-sdk-auth-core.jar

更新

有人将我推荐给Xamarin.GradleBindings。我还没有对此进行测试,但我希望我希望这对其他读者有用。

0 个答案:

没有答案