2017-02-15 18 views
3

Я пытаюсь скрыть свой API-интерфейс ткани от исходного элемента управления, поместив ключ в файл XML-файла без отслеживания. Но по какой-то причине ткань не принимает ключевую ссылку @string/FABRIC_API_KEY в манифесте.Ткань не принимает @string/... ссылку для своего ключа API в manifest.xml

файл XML выглядит следующим образом -

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="NASA_API_KEY">abcd</string> 
    <string name="FABRIC_API_KEY">xyz</string> 
</resources> 

Ссылка в манифесте -

<meta-data 
    android:name="io.fabric.ApiKey" 
    android:text="@string/FABRIC_API_KEY" /> 

И вот ошибка я получаю на попытке построить -

Error:Execution failed for task ':app:fabricGenerateResourcesDebug'. Crashlytics Developer Tools error.

Я попытался получить доступ к ключу API через BuildConfig, и он все еще не работает.

ответ

2

Согласно ткани,

Вы должны прекратить добавление этого ключевого поля в AndroidManifest.xml. Вместо этого вы должны добавить его в fabric.properties.

В основном библиотека тканей автоматически объединяет этот ключ позже в объединенном AndroidManifest.xml.

REF: https://docs.fabric.io/android/fabric/settings/working-in-teams.html#android-projects

Надеется, что это помогает.

+0

Я сделал 'ткань.файл свойств в корневом каталоге и добавил ключ API так, как они это упомянули. Но, я все равно получаю ту же ошибку. –

+0

Это сработало для меня ... Я разместил fabric.properties на корне модуля, на том же уровне, что и progruard-rules.pro или build.gradle), но я добавил на него как secretKey, так и apiKey. Как они сказали мне по адресу [email protected]: «Вы можете найти свой секретный ключ здесь: https://fabric.io/settings/organizations после выбора вашей организации. Просто выберите кнопку« Создать секрет »под названием вашей организации. " – MarionaDSR

2

В build.gradle добавить manifestPlaceholders:

defaultConfig { 
    manifestPlaceholders = [ 
     FABRIC_API_KEY:"Your Key" 
    ] 
} 

Используйте его в AndroidManifest.xml как

<meta-data 
    android:name="io.fabric.ApiKey" 
    android:value="${FABRIC_API_KEY}" 
/> 
0

Okay..I получили ответ на мой собственный ... вот код, который помог мне :

Выполните следующие шаги: -

https://github.com/plastiv/CrashlyticsDemo/

В основном людям приходится сталкиваться с проблемой командной строки gradle, чтобы вы могли использовать вот так: 1) Открыть терминал.

2) Перейдите к проекту рабочего пространства

3) ./gradlew

(Заметим, что если разрешение отрицает Используйте ERRor эту command- CHMOD 744 gradlew и снова запустить ./gradlew)

(4) ./gradlew собрать -P apiKey = Ваш апи ткань ключ

Теперь вы можете полностью секретный ключ апи, но помните одну вещь ваши fabric.properties выглядит, что

fabric.properties:-

apiSecret =»Ваша ткань секретный ключ» apiKey =»Ваша ткань апи ключ»

Наслаждайтесь!

+0

Кроме того, вы можете удалить 1) defaultConfig { manifestPlaceholders = [ FABRIC_API_KEY: "Ваш ключ" ] } 2) <мета-данных андроид: имя = "io.fabric.ApiKey" андроид: значение = "$ {FABRIC_API_KEY}" /> –