2016-04-04 3 views
1

google login работает в симуляторе, но приложение падает во всех проверенных мной устройствах.google + login codenameone не работает в устройствах

sign.addActionListener((e) -> { 
    String clientId = "704790222159-n1cpb3g1q3plirslu5739apc0gnnv4pp.apps.googleusercontent.com"; 
    String redirectURI = "https://www.youtube.com/"; 
    String clientSecret = "q_cxGCCbX5GVC99kxgstjksB"; 
    gc = GoogleConnect.getInstance(); 
    gc.setClientId(clientId); 
    gc.setRedirectURI(redirectURI); 
    gc.setClientSecret(clientSecret); 
    gc.setScope("https://www.googleapis.com/auth/youtube.force-ssl"); 
    gc.setCallback(new LoginCallback() { 
     @Override 
     public void loginFailed(String errorMessage) { 
      Dialog.show("Error Logging In", "There was an error logging in: " + errorMessage, "OK", null); 
     } 

     @Override 
     public void loginSuccessful() { 
      Dialog.show("Logged In", "you are currently logged in ", "OK", null); 
     } 
     }); 
     if (!gc.isUserLoggedIn()) { 
      gc.doLogin(); 
     } else { 
      token = gc.getAccessToken().getToken(); 
     } 
}); 

В тренажере следующие страницы входа появляется, и она работает нормально, но в реальных устройствах страница Логин (разрешить/запретить страницу) не появляется после того, как я войти в систему, а затем приложение падает после того, как некоторое время

enter image description here

журнал

ошибка:

error log

подробный журнал:

device error log

+0

Еще одна вещь, мне нужно включить любые подсказки сборки для андроида в свойствах проекта? – beck

+0

Подсказка: вы не должны включать ключи аутентификации в свои сообщения здесь, в StackOverflow ... –

+0

Спасибо @ DanielBleisteiner Я был jst, пытающийся выполнить проект. Это не настоящий проект. Как только я получу это правильно, я получу новые ключи. Я включил ключи, чтобы, если sm1 пытается использовать код, они не должны беспокоиться о ключах. – beck

ответ

0

Симулятор использует все эти подсказки, которые работают для резервного копирования в Интернете. Устройство использует собственный логин, который определяется комбинацией подсказок построения и настроек веб-сайта.

Предлагаю ознакомиться с руководством по проектированию this section.

Я также предложил бы подключить кабель к устройству Android и использовать инструмент DDMS для Android SDK для отладки аварий такого типа.

+0

Я сохранил все подсказки построения, такие как android playervice, auth до истинного, но такого же результата. Существует клиентский идентификатор и клиентский секрет под веб-клиентом, и в клиенте android есть только идентификатор клиента. Я держал веб-клиента и тайну. Это причина, по которой он работает нормально в симуляторе, а не в устройствах? Если это так, клиентский клиент в Android-клиенте отсутствует. Что я должен хранить в секретности клиента. – beck

+0

Соответствует ли ваш пакет, ключ/SHA вашему определению в проекте Google? –

+0

да все совпадают. Могу ли я отлаживать складки cn1 apk в студии Android, как вы упомянули в ур и как? – beck

1

Вчера я отладил аналогичную проблему. Это потому, что приложение не получает соответствующих разрешений. Если вы вручную предоставите разрешения на своем устройстве (в настройках -> apps-> ваше приложение), логин с Google будет работать нормально (по крайней мере, с Android, iOS я до сих пор не могу работать, он просто вращается бесконечно).

Это такие загадки, которые не объясняются ни в одной документации, которая, к сожалению, мешает мне вложить в кодовое имя. Похоже, у него так много потенциала, но я постоянно сталкиваюсь с этой проблемой, так как это снижает мою производительность.

+0

Обновление: Возможно, я был слишком резким из-за моей критики CN1. После некоторой дополнительной работы POC я обнаружил, что могу делать большинство вещей, которые мне нужно делать (общение с PHP, загрузка/загрузка файлов, вход в facebook, функции GPS и карты) с относительной легкостью, особенно по сравнению с Xamarin. Логин google - это единственная проблема, с которой я не мог понять. –

Смежные вопросы