0

我目前正在与 Distriqt G+ ANE 合作。我的设置是这样的:

  1. Distriqt 教程中提供的带有正确 dx.jar 的 AIR 16。
  2. 使用 District ANE 提供的演示项目
  3. 三星 Galaxy S-Plus (GT-I9001) 与 Android 2.3.6 进行测试
  4. OAUTH ID 设置正确,在 iOS 上完美运行
  5. 包括 GooglePlay 和 Core ANE(即使前者在 iOS 上不是必需的)

问题#1: 所以我在演示项目(在Android上)中得到了以下非常奇怪的行为:

  1. 第一次调用 signIn 什么都不做。
  2. 第二次调用登录将我带到 google plus 应用程序。
  3. 我可以选择我想使用的帐户。但我可以点击它,没有任何反应。我通常可以点击 2-3 次。
  4. 它切换回应用程序,但不触发任何事件处理程序

-> 步骤是可重复的,如果您在 cat 日志中搜索应用程序 ID,我永远不会收到任何事件,唯一的事情是来自应用程序的跟踪和

08-19 18:18:32.031 I/GLSUser (4626): [GLSUser] getTokenFromGoogle [account: , callingPkg: air.my.com.zas.lefiner, service: oauth2: https://www.googleapis.com/auth /plus.login

问题 #2: 如果我尝试在使用其他几个 ANE 的主应用程序中实现这一点。

<extensionID>com.distriqt.PushNotifications</extensionID>
<extensionID>com.itpointlab.ane.FlashLight</extensionID>
<extensionID>com.milkmangames.extensions.GoViral</extensionID>
<extensionID>com.distriqt.GooglePlus</extensionID>
<extensionID>com.distriqt.Core</extensionID>
<extensionID>com.distriqt.GooglePlayServices</extensionID>

无法编译。有一个很长的错误。

dx 工具失败:警告:忽略不带有关联EnclosureMethod 属性的匿名内部类 ( com.facebook.AppEventsLogger$1 ) 的 InnerClasses 属性。此类可能是由不针对现代 .class 文件格式的编译器生成的。推荐的解决方案是从源代码重新编译类,使用最新的编译器并且不指定任何“-target”类型选项。忽略此警告的后果是此类上的反射操作将错误地指示它不是内部类。

这个块与其他几十个类重复,其中大多数在 com.milkmangames.extensions.* 中有些还具有神秘的名称,如 cmxagv.al

最后出现内存错误:

意外的顶级错误:java.lang.OutOfMemoryError:com.android.dx.util.IntList.add(IntList.java 的 com.android.dx.util.IntList.growIfNeeded(IntList.java:274) 处的 Java 堆空间:217)
...

有没有人遇到过与这 2 个 ANE 或旧 Android 手机上的 G+ ANE 类似的问题?

4

1 回答 1

1

您的第一个问题听起来像是 SHA-1 证书的问题。您应该确保按照说明正确生成此文件,并且已将其正确添加到控制台项目中。

http://airnativeextensions.com/extension/com.distriqt.GooglePlus#get-started

您可以在此处找到有关证书的更多信息:https ://developers.google.com/+/mobile/android/getting-started

这在 Android 上非常重要,如果不正确地将其与用于签署应用程序的签名/证书匹配,将导致登录失败,正如您所经历的那样。

于 2015-08-21T23:48:47.290 回答