Твиттер Логин работает нормально, но продолжает выдавать ошибку, запрашивая ключ API

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

Пока мне нужно использовать только функцию "Войти через 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.

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

1 ответ

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

Другие вопросы по тегам