Distriqt Google Plus ANE - Проблеми с Android и конфликт с Milkman GoViral ANE

В момента работя с Distriqt G+ ANE. Моята настройка е следната:

  1. AIR 16 с правилния dx.jar, предоставен в уроците на Distriqt.
  2. Използване на демопроекта, предоставен с District ANE
  3. Samsung Galaxy S-Plus (GT-I9001) с Android 2.3.6 за тестване
  4. Всички OAUTH идентификатори са настроени правилно, работи перфектно на iOS
  5. Включени са GooglePlay и Core ANE (въпреки че първите не са необходими на iOS)

Проблем №1: Така че получавам следното много странно поведение с демонстрационен проект (на Android):

  1. първото повикване за влизане просто не прави нищо.
  2. второто обаждане за влизане ме отвежда до приложението google plus.
  3. мога да избера акаунта, който искам да използвам. но мога да щракна върху него и нищо не се случва. мога да кликна 2-3 пъти обикновено.
  4. превключва обратно към приложението, но не задейства нито един от манипулаторите на събития

-> стъпките са повторими и никога не получавам никакви събития обратно, ако търсите идентификатора на приложението в дневника на котките, единственото нещо са следите от приложението и

08-19 18:18:32.031 I/GLSUser (4626): [GLSUser] getTokenFromGoogle [акаунт: , callingPkg: air.my.com.zas.lefiner, услуга: 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 tool failed:warning: Игнориране на атрибут InnerClasses за анонимен вътрешен клас (com.facebook.AppEventsLogger$1), който не идва със свързан атрибут EnclosingMethod. Този клас вероятно е създаден от компилатор, който не е насочен към съвременния файлов формат .class. Препоръчителното решение е да прекомпилирате класа от източника, като използвате актуален компилатор и без да указвате каквито и да било опции за тип "-target". Последицата от пренебрегването на това предупреждение е, че отразяващите операции върху този клас ще покажат неправилно, че той не е вътрешен клас.

Този блок се повтаря с десетки други класове, повечето от които в com.milkmangames.extensions.* някои също имат загадъчни имена като c.m.x.a.gv.al

В края има грешка в паметта:

НЕОЧАКВАНА ГРЕШКА НА ГОРНО НИВО: java.lang.OutOfMemoryError: Java heap пространство на com.android.dx.util.IntList.growIfNeeded(IntList.java:274) на com.android.dx.util.IntList.add(IntList.java :217)
...

Някой някога срещал ли е подобни проблеми с тези 2 ANE или само с G+ ANE на стария телефон с Android?


person Artifexx    schedule 21.08.2015    source източник
comment
Вторият ви проблем вероятно е конфликт между библиотеките, които milkman е пакетирал, и версията на GooglePlay Services. Можете да опитате да премахнете GooglePlayServices, но вярвам, че Go Viral ANE има стара версия на тази библиотека и вероятно няма да работи с distriqt ANE.   -  person Michael    schedule 22.08.2015
comment
добре, това изглежда също така е и с Freshplanet Facebook ANE. Тъжно е, че няма решение за това и сега трябва да купим област ANE, за да имаме и двете платформи   -  person Artifexx    schedule 23.08.2015


Отговори (1)


Първият ви проблем звучи като проблем със сертификата SHA-1. Трябва да се уверите, че следвате инструкциите, за да генерирате правилно това и че сте добавили това правилно към вашия конзолен проект.

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

Можете да намерите повече информация за сертификата тук: https://developers.google.com/+/mobile/android/getting-started

Това е много важно за Android и неправилното съпоставяне на това с подписа/сертификата, използван за подписване на вашето приложение, ще доведе до неуспешно влизане, както се случва.

person Michael    schedule 21.08.2015
comment
Здравей Майкъл, благодаря ти за отговора. Трябва ли да използвам различни OAUTH ID в зависимост от платформата? Това, което направих е: -› имам такъв с тип iOS (работещ) -› един с тип android и SHA1 пръстов отпечатък на сертификата, който използвам за подписване -› обаче използвам само собствено създаден сертификат, а не този, използван във flash builder . Възможно ли е да предоставите този сертификат, защото нямам flash builder. Сега ще се опитам да тествам и на друга версия на Android. - person Artifexx; 22.08.2015
comment
добре, забелязах, че OAUTH клиентът за android пропусна този въздух. преди идентификатора на приложението. което беше грешката... може би добавете и това към урока! - person Artifexx; 22.08.2015
comment
Ако не използвате FlashBuilder, сертификатът за отстраняване на грешки, включен в него, ще бъде безполезен за вас. FB използва този сертификат за подписване на компилации за отстраняване на грешки. - person Michael; 23.08.2015
comment
Определено се нуждаете от различни Oauth идентификатори за всяка платформа, която използвате. Конзолата на Google трябва да ви преведе през това. Трябва да използвате идентификационния номер на вашия Android пакет, който може да включва ефира. префикс, ако не указвате премахването му по време на опаковането. - person Michael; 23.08.2015