【问题标题】:Huawei Account Kit not working, how to implement?Huawei Account Kit 无法使用,如何实施?
【发布时间】:2020-10-01 14:22:49
【问题描述】:

尝试在我们的应用中实施 Account Kit,但它不起作用。

使用 com.huawei.hms:hwid:5.0.3.301 并在登录时显示空白活动。从这个空白活动中点击返回按钮,日志将显示 onActivityResult 1002 0。

尝试从https://github.com/HMS-Core/huawei-account-demo 构建演示项目。是一样的,点击登录什么都没有,点击返回按钮会显示登录失败。

可能是什么问题?

#更新: 演示中缺少 ags 文件,因此是空白活动。添加 AGS 文件修复了它。

在验证原生 android SDK 构建确实在我的设备上运行后,继续尝试在 Unity 上实现。

下载 4.0.4.300 AccountSDK 和 4.0.4.301 Core。运行APK,出现以下错误:

     Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.test.test.huawei/com.huawei.hms.activity.BridgeActivity}; have you declared this activity in your AndroidManifest.xml?
        at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1950)
        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1622)
        at android.app.Activity.startActivityForResult(Activity.java:4564)
        at android.app.Activity.startActivityForResult(Activity.java:4522)
        at android.app.Activity.startActivity(Activity.java:4883)
        at android.app.Activity.startActivity(Activity.java:4851)
        at com.huawei.hms.adapter.AvailableAdapter.startResolution(AvailableAdapter.java:155)
        at com.huawei.hms.hwid.a.a.a(HmsAPKVersionCheckUtil.java:46)
        at com.huawei.hms.hwid.internal.ui.activity.HwIdSignInHubActivity.a(HwIdSignInHubActivity.java:212)
        at com.huawei.hms.hwid.internal.ui.activity.HwIdSignInHubActivity.onCreate(HwIdSignInHubActivity.java:106)
        at android.app.Activity.performCreate(Activity.java:7174)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1220)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2908)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3030) 
        at android.app.ActivityThread.-wrap11(Unknown Source:0) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1696) 
        at android.os.Handler.dispatchMessage(Handler.java:105) 
        at android.os.Looper.loop(Looper.java:164) 
        at android.app.ActivityThread.main(ActivityThread.java:6938) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374) 

然后我将 HMSSdkUI 清单中的桥接活动复制到我的清单中并构建了应用程序:

        <activity
            android:name="com.huawei.hms.activity.BridgeActivity"
            android:configChanges="orientation|locale|layoutDirection|fontScale|screenSize|smallestScreenSize|screenLayout"
            android:excludeFromRecents="true"
            android:exported="false"
            android:hardwareAccelerated="true"
            android:screenOrientation="behind"
            android:theme="@android:style/Theme.Translucent" >
            <meta-data
                android:name="hwc-theme"
                android:value="androidhwext:style/Theme.Emui.Translucent" />
        </activity>

但是,请求登录仍会导致空白活动。这是日志:我怀疑它与 BridgeActivity 有关??

2020-10-09 16:02:17.063 20598-20598/? I/HMSSDK_HMSBIInitializer: Builder->biInitFlag :false
2020-10-09 16:02:17.064 20598-20598/? I/HMSSDK_HMSBIInitializer: Builder->biSetting :false
2020-10-09 16:02:17.065 20598-20598/? I/HMSSDK_CountryCodeBean: getCountryCode get country code from SIM_COUNTRY
2020-10-09 16:02:17.068 20598-20598/? I/HMSSDK_CountryCodeBean: getCountryCode get country code from SIM_COUNTRY
2020-10-09 16:02:17.070 20598-20598/? W/NetworkKit_AbstractLocalManager: 20598-20598|null|com.huawei.hms.framework.network.grs.local.a|a|16|addresses not found by routeby in local config{com.huawei.cloud.opensdkhianalytics}
2020-10-09 16:02:17.072 20598-23397/? E/HMSSDK_HMSBIInitializer: get grs failed, the errorcode is -3
2020-10-09 16:02:17.075 1565-3643/? I/ActivityManager: START u0 {act=com.huawei.hms.jos.signIn typ=null flg=0x0 cmp=ComponentInfo{com.test.test.huawei/com.huawei.hms.hwid.internal.ui.activity.HwIdSignInHubActivity}} from uid 10935
2020-10-09 16:02:17.100 1565-2477/? D/GameManagerService: handleForegroundChange(). pkgName: com.test.test.huawei, clsName: com.huawei.hms.hwid.internal.ui.activity.HwIdSignInHubActivity,FgActivityName:com.test.test.huawei/com.huawei.hms.hwid.internal.ui.activity.HwIdSignInHubActivity
2020-10-09 16:02:17.140 20598-20598/? I/HMSSDK_[HUAWEIIDSDK]HwIdSignInClientHub: onCreate
2020-10-09 16:02:17.143 20598-20598/? I/HMSSDK_HiAnalyticsUtil: not ChinaROM
2020-10-09 16:02:17.144 20598-20598/? I/HMSSDK_HiAnalyticsUtil: Get OOBE failed
2020-10-09 16:02:17.144 20598-20598/? I/HMSSDK_HmsAPKVersionCheckUtil: ====== HMSSDK version: 40004300 ======
2020-10-09 16:02:17.144 20598-20598/? I/HMSSDK_HmsAPKVersionCheckUtil: check minVersion:30000000
2020-10-09 16:02:17.148 20598-20598/? E/HMSSDK_X509CertUtil: exception:updatesdkcas.bks
2020-10-09 16:02:17.148 20598-20598/? E/HMSSDK_X509CertUtil: rootCert is null,verify failed 
2020-10-09 16:02:17.149 20598-20598/? E/HMSSDK_HMSPackageManager: failed to verify cert chain
2020-10-09 16:02:17.149 20598-20598/? E/HMSSDK_HMSPackageManager: checkSinger failed
2020-10-09 16:02:17.149 20598-20598/? E/HMSSDK_HMSPackageManager: Failed to find HMS apk
2020-10-09 16:02:17.150 20598-20598/? I/HMSSDK_AvailableAdapter: HMS is not installed
2020-10-09 16:02:17.151 20598-20598/? I/HMSSDK_AvailableAdapter: enter 4.0 HmsCore upgrade process
2020-10-09 16:02:17.151 20598-20598/? I/HMSSDK_AvailableAdapter: Start to resolution for the 1st time.
2020-10-09 16:02:17.151 20598-20598/? I/HMSSDK_AvailableAdapter: startResolution
2020-10-09 16:02:17.156 1565-4083/? I/ActivityManager: START u0 {act=null typ=null flg=0x0 cmp=ComponentInfo{com.test.test.huawei/com.huawei.hms.activity.BridgeActivity}} from uid 10935
2020-10-09 16:02:17.184 1565-4083/? V/WindowManager: Relayout Window{fd32694 u0 com.test.test.huawei/com.huawei.hms.hwid.internal.ui.activity.HwIdSignInHubActivity}: viewVisibility=0 req=720x1336 WM.LayoutParams{(0,0)(fillxfill) sim=#120 ty=1 fl=#1810100 pfl=0x1020000 fmt=-2 wanim=0x1030000 vsysui=0x410 needsMenuKey=2 colorMode=0 naviIconColor=0}
2020-10-09 16:02:17.185 655-655/? I/SurfaceFlinger: id=14264 createSurf (720x1480),1 flag=4, com.test.test.huawei/com.huawei.hms.hwid.internal.ui.activity.HwIdSignInHubActivity#0
2020-10-09 16:02:17.231 1565-2477/? D/GameManagerService: handleForegroundChange(). pkgName: com.test.test.huawei, clsName: com.huawei.hms.activity.BridgeActivity,FgActivityName:com.test.test.huawei/com.huawei.hms.activity.BridgeActivity
2020-10-09 16:02:17.239 1565-3643/? V/WindowManager: finishDrawingLocked: mDrawState=COMMIT_DRAW_PENDING Window{fd32694 u0 com.test.test.huawei/com.huawei.hms.hwid.internal.ui.activity.HwIdSignInHubActivity} in Surface(name=com.test.test.huawei/com.huawei.hms.hwid.internal.ui.activity.HwIdSignInHubActivity)
2020-10-09 16:02:17.279 20598-20598/? E/HMSSDK_BridgeActivity: Run time Exception.String resource ID #0x0
2020-10-09 16:02:17.279 20598-20598/? I/HMSSDK_BridgeActivity: Enter finish.
2020-10-09 16:02:17.301 1565-2477/? D/GameManagerService: handleForegroundChange(). pkgName: com.test.test.huawei, clsName: com.huawei.hms.hwid.internal.ui.activity.HwIdSignInHubActivity,FgActivityName:com.test.test.huawei/com.huawei.hms.hwid.internal.ui.activity.HwIdSignInHubActivity
2020-10-09 16:02:17.316 1565-8502/? V/WindowManager: Relayout Window{fd32694 u0 com.test.test.huawei/com.huawei.hms.hwid.internal.ui.activity.HwIdSignInHubActivity}: viewVisibility=0 req=720x1384 WM.LayoutParams{(0,0)(fillxfill) sim=#120 ty=1 fl=#1810100 pfl=0x1020000 fmt=-2 wanim=0x1030000 vsysui=0x410 needsMenuKey=2 colorMode=0 naviIconColor=0}
2020-10-09 16:02:17.334 20598-20598/? I/HMSSDK_UpdateAdapter: onBridgeActivityDestroy

【问题讨论】:

  • 您是否还设置了 AGC、签署了应用程序、设置了指纹?
  • 一切都配置好了。 IAP 已在侧面实施,并且可以完美运行。我们目前使用的是 2.6.1,但由于明年将被删除,我们正在升级到 5.x。

标签: java android unity3d huawei-mobile-services huawei-account


【解决方案1】:

在演示中,如果您点击登录,应用会尝试获取您的华为帐号的授权。请检查您是否在HMS手机上运行且华为账号是否登录。

github中的demo有点老了,可以直接从official page下载代码。 github demo会尽快更新。

更新:

  1. 请修改app目录下build.gradle文件中的xxx.jks信息。
  2. 请在AGC平台create a project,在AGC平台的xxx.jks文件中设置SHA256信息。
  3. 请从AGC平台下载agconnect-services.json文件,并将文件放在项目的app目录下。

【讨论】:

  • 在三星手机上运行 HMS 4.0+。 HMS 2.6x 帐户登录可在同一部手机上使用,但在 HMS 5.x 中则不行。演示是从官方页面下载的,我只是指的是github链接。单击演示项目中的“登录”按钮,我会看到一个新活动显示,但它是空白的。点击返回按钮将导致登录失败错误消息。所以 api 显然可以工作,但是“屏幕”不见了。
  • @Joe 1. 请修改app目录下build.gradle文件中的xxx.jks信息。 2、请在AGC平台create a project,在AGC平台的xxx.jks文件中设置SHA256信息。 3、请从AGC平台下载agconnect-services.json文件,并将文件放在项目的app目录下。完成这些步骤后,尝试再次登录。如果仍然无法登录,请提供日志,以便错误分析和定位。
  • 演示项目中缺少 agconnect-services.json。添加它并显示正确的活动。
  • 演示项目有效,但 Unity 实现仍显示空白活动。我已使用 Unity 帐户登录的日志更新了帖子(仍显示空白活动)
  • @Joe 好的,我更新了 Account Kit 问题的答案。针对本次Unity问题,Unity在此处提供HMS Plugin:Unity Asset Store > Huawei HMS Core App Services,README文件包含开发指南信息。更多技术问题,请通过Unity Customer Service提交工单。
【解决方案2】:

错误代码 10020 表示参数无效。 你能检查你是否添加了正确的参数。 参考华为官方文档how to sign in using huawei id

【讨论】:

  • 您注释了错误代码 10020。这 2 位数字只是每个受保护的 void onActivityResult(int requestCode, int resultCode, Intent data) 的请求代码和结果代码。
【解决方案3】:

您是否在使用 HMS Analytics 套件,因为 10020 代码是分析套件的错误代码。查看分析套件的错误代码: https://developer.huawei.com/consumer/en/doc/development/HMSCore-References-V5/android-api-error-code-0000001050987233-V5

如果您想实施 Account kit,以下是可以帮助您的链接,也许您将能够解决您的问题:

  1. https://forums.developer.huawei.com/forumPortal/en/topicview?tid=0201272938220820099&fid=0101187876626530001

  2. https://forums.developer.huawei.com/forumPortal/en/topicview?tid=0201206040914750083&fid=0101187876626530001

【讨论】:

  • 您注释了错误代码 10020。这 2 位数字只是每个受保护的 void onActivityResult(int requestCode, int resultCode, Intent data) 的请求代码和结果代码。您可以查看示例项目@github.com/HMS-Core/huawei-account-demo/blob/master/…
  • 另外,这篇文章是针对 ACCOUNTS Kit 的。不是分析工具包。
【解决方案4】:

在您的示例中,您正在实施帐户工具包和分析工具包的组合,分析工具包将返回此 10020 代码,请查看下面的 URl 以了解您的实施目的帐户工具包参考

https://forums.developer.huawei.com/forumPortal/en/topicview?tid=0201231030637780065&fid=0101187876626530001

【讨论】:

  • 您注释了错误代码 10020。这 2 位数字只是每个受保护的 void onActivityResult(int requestCode, int resultCode, Intent data) 的请求代码和结果代码。您可以查看示例项目@github.com/HMS-Core/huawei-account-demo/blob/master/…
  • 另外,这篇文章是针对 ACCOUNTS Kit 的。不是分析工具包。
猜你喜欢
  • 2016-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-25
  • 1970-01-01
  • 1970-01-01
  • 2021-03-29
  • 1970-01-01
相关资源
最近更新 更多