摘要
当绑定构建在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 UserPool
和AWS 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.UI
和AuthUIConfiguration
,显然错过了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 更新
有人将我推荐给Xamarin.GradleBindings。我还没有对此进行测试,但我希望我希望这对其他读者有用。