2015-03-27 1 views
0

Мне удалось реализовать твиттер-логин в приложении для Android. Все работает нормально, поэтому я просто стараюсь держать его в чистоте.Twitter Работает отлично, но продолжает бросать ошибку с запросом API-ключа

Сейчас мне нужно только использовать Вход с функцией Twitter, так что я следовал инструкции, приведенные здесь: https://dev.twitter.com/twitter-kit/android/twittercore

Как я уже сказал, что все работает нормально, но каждый раз мои запуске приложения я получаю следующее сообщение об ошибке:

E/Fabric (8859): Error dealing with settings 
E/Fabric (8859): java.lang.IllegalArgumentException: Fabric could not be initialized, API key missing from AndroidManifest.xml. Add the following tag to your Application element 
E/Fabric (8859):  <meta-data android:name="io.fabric.ApiKey" android:value="YOUR_API_KEY"/> 
E/Fabric (8859):  at io.fabric.sdk.android.services.common.ApiKey.logErrorOrThrowException(ApiKey.java:93) 
E/Fabric (8859):  at io.fabric.sdk.android.services.common.ApiKey.getValue(ApiKey.java:44) 
E/Fabric (8859):  at io.fabric.sdk.android.services.settings.Settings.initialize(Settings.java:68) 
E/Fabric (8859):  at io.fabric.sdk.android.Onboarding.doInBackground(Onboarding.java:80) 
E/Fabric (8859):  at io.fabric.sdk.android.Onboarding.doInBackground(Onboarding.java:26) 
E/Fabric (8859):  at io.fabric.sdk.android.InitializationTask.doInBackground(InitializationTask.java:46) 
E/Fabric (8859):  at io.fabric.sdk.android.InitializationTask.doInBackground(InitializationTask.java:11) 
E/Fabric (8859):  at io.fabric.sdk.android.services.concurrency.AsyncTask$2.call(AsyncTask.java:294) 
E/Fabric (8859):  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
E/Fabric (8859):  at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422) 
E/Fabric (8859):  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
E/Fabric (8859):  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
E/Fabric (8859):  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
E/Fabric (8859):  at java.lang.Thread.run(Thread.java:818) 

Я попытался добавить это значение в моем файле манифеста, с помощью Consumer Key моего приложения, и я получаю следующее сообщение об ошибке вместо:

3-24 13:34:38.451 10250-10268/... E/Fabric﹕ Unknown error while loading Crashlytics settings. Crashes will be cached until settings can be retrieved. 
    org.json.JSONException: No value for app 
      at org.json.JSONObject.get(JSONObject.java:389) 
      at org.json.JSONObject.getJSONObject(JSONObject.java:609) 
      at io.fabric.sdk.android.services.settings.DefaultSettingsJsonTransform.buildFromJson(DefaultSettingsJsonTransform.java:24) 
      at io.fabric.sdk.android.services.settings.DefaultSettingsController.loadSettingsData(DefaultSettingsController.java:66) 
      at io.fabric.sdk.android.services.settings.DefaultSettingsController.loadSettingsData(DefaultSettingsController.java:47) 
      at io.fabric.sdk.android.services.settings.Settings.loadSettingsData(Settings.java:139) 
      at io.fabric.sdk.android.Onboarding.doInBackground(Onboarding.java:80) 
      at io.fabric.sdk.android.Onboarding.doInBackground(Onboarding.java:26) 
      at io.fabric.sdk.android.InitializationTask.doInBackground(InitializationTask.java:46) 
      at io.fabric.sdk.android.InitializationTask.doInBackground(InitializationTask.java:11) 
      at io.fabric.sdk.android.services.concurrency.AsyncTask$2.call(AsyncTask.java:294) 
      at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:422) 
      at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
      at java.lang.Thread.run(Thread.java:818) 

Я не понимаю, почему я получаю эту ошибку, если все работает нормально, это значение явно не обязательно для моих намеченных целей, поэтому я не знаю, делает ли Twitter что-то дополнительное на заднем плане. Кроме того, в документах нигде не упоминается, что мне нужно предоставить это значение в манифесте, чтобы использовать Twitter Login.

Обновление: Я представил эту же проблему в сообществе twitter. Ответ заключается в том, что «Твиттер-комплект построен поверх Fabric, поэтому ему нужен ключ API для разговора с настройками ткани». По моему мнению, это еще не отвечает на мой вопрос о том, что делает Twitter, кроме входа. Но я предполагаю, что если он построен поверх Fabric, его можно отнести к некоторым старым проблемам, когда он пытается сделать что-то необходимое для работы платформы Fabric, что не обязательно для входа. Больше информации здесь: https://twittercommunity.com/t/twitter-login-working-fine-but-keeps-asking-api-key-android/34383/3

ответ

0

Похоже, вам нужно определить некоторые параметры для Crashlytics, одним из которых является свойство app. Также похоже, что вы используете Fabric, частью которого является Crashlytics.

+0

Да, но моя проблема в том, что я только хочу использовать вход в Twitter. Итак, кажется, что твиттер пытается сделать что-то еще, и это проблема, которую я хочу исправить. Может быть, это невозможно предотвратить, но потом я хотел бы знать, что именно происходит. –

+0

Или, может быть, возможно, что все, что работает в Twitter, отлично работает, и ваша проблема лежит в другом месте ... –