Получение: Fabric не может быть инициализирован, отсутствует ключ API в AndroidManifest.xml, пока у меня есть fabric.properties с apiKey - PullRequest
0 голосов
/ 13 января 2019

Я пытаюсь скрыть apiKey и apiSecret из библиотеки с открытым исходным кодом, в то же время предоставляя готовые исходные коды для непрерывной интеграции Travis.

В официальной документации указано здесь: , что это должно работать, если у меня есть fabric.properties:

apiKey=7dee86d.....e7f76d8e9453
apiSecret=a6cdefeb0a8f....c8a5d9fa2f5f9895931cc2

А потом я могу удалить ...

Remove the Fabric API key element from your AndroidManifest.xml

и вместо этого ...

Add the Fabric API key to your fabric.properties: apiKey=fabric_api_key

Я инициализирую ткань нормально

Fabric.with(this, Crashlytics(), Answers())

но все равно я получаю исключение:

    E/Fabric: Failure onPreExecute()
    java.lang.IllegalArgumentException: Fabric could not be initialized, API key missing from AndroidManifest.xml. Add the following tag to your Application element 
        <meta-data android:name="io.fabric.ApiKey" android:value="YOUR_API_KEY"/>
        at io.fabric.sdk.android.services.common.ApiKey.logErrorOrThrowException(ApiKey.java:130)
        at io.fabric.sdk.android.services.common.ApiKey.getValue(ApiKey.java:67)
        at com.crashlytics.android.core.CrashlyticsCore.onPreExecute(CrashlyticsCore.java:227)
        at com.crashlytics.android.core.CrashlyticsCore.onPreExecute(CrashlyticsCore.java:210)
        at io.fabric.sdk.android.InitializationTask.onPreExecute(InitializationTask.java:44)
        at io.fabric.sdk.android.services.concurrency.AsyncTask.executeOnExecutor(AsyncTask.java:611)
        at io.fabric.sdk.android.services.concurrency.PriorityAsyncTask.executeOnExecutor(PriorityAsyncTask.java:43)
        at io.fabric.sdk.android.Kit.initialize(Kit.java:69)
        at io.fabric.sdk.android.Fabric.initializeKits(Fabric.java:467)
        at io.fabric.sdk.android.Fabric.init(Fabric.java:411)
        at io.fabric.sdk.android.Fabric.setFabric(Fabric.java:369)
        at io.fabric.sdk.android.Fabric.with(Fabric.java:340)
        at renetik.android.sample.model.SampleApplication.onCreate(SampleApplication.kt:20)
        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1011)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4518)
        at android.app.ActivityThread.access$1500(ActivityThread.java:144)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1339)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.app.ActivityThread.main(ActivityThread.java:5221)
        at java.lang.reflect.Method.invoke(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:372)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
E/Fabric: Error dealing with settings
    java.lang.IllegalArgumentException: Fabric could not be initialized, API key missing from AndroidManifest.xml. Add the following tag to your Application element 
        <meta-data android:name="io.fabric.ApiKey" android:value="YOUR_API_KEY"/>
        at io.fabric.sdk.android.services.common.ApiKey.logErrorOrThrowException(ApiKey.java:130)
        at io.fabric.sdk.android.services.common.ApiKey.getValue(ApiKey.java:67)
        at io.fabric.sdk.android.services.settings.Settings.initialize(Settings.java:78)
        at io.fabric.sdk.android.Onboarding.retrieveSettingsData(Onboarding.java:124)
        at io.fabric.sdk.android.Onboarding.doInBackground(Onboarding.java:99)
        at io.fabric.sdk.android.Onboarding.doInBackground(Onboarding.java:45)
        at io.fabric.sdk.android.InitializationTask.doInBackground(InitializationTask.java:63)
        at io.fabric.sdk.android.InitializationTask.doInBackground(InitializationTask.java:28)
        at io.fabric.sdk.android.services.concurrency.AsyncTask$2.call(AsyncTask.java:311)
        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)

1 Ответ

0 голосов
/ 14 февраля 2019

Убедитесь, что вы apply plugin: 'io.fabric' в своем build.gradle - даже если вы не используете Fabric / Crashlytics, скажем, в отладочной сборке - он все равно должен быть запущен ..

...