2015-04-30 3 views
5

Недавно я перенес проект myroid от Eclipse в Android Studio. В настоящее время мой проект имеет следующую Gradle структуру сценария:Где разместить применимую директиву плагина Crashlytics в файлах сборки Gradle

  • верхнего уровня файл Gradle сборки
  • Основной модуль (мое приложение) Gradle файл сборки
  • модуль A (мое приложение) Gradle файл сборки
  • модуль B (мое приложение) Gradle файл сборки
  • модуль C (мое приложение) Gradle файл сборки

Содержание моего основного Gradle бушель ild файл:

// Top-level build file where you can add configuration options common to all sub-projects/modules. 

buildscript { 
    repositories { 
     mavenCentral() 
     maven { url 'http://download.crashlytics.com/maven' } 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.2.1' 
     classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+' 
     // NOTE: Do not place your application dependencies here; they belong 
     // in the individual module build.gradle files 
    } 

} 

allprojects { 
    repositories { 
     maven { url "http://dl.bintray.com/populov/maven" } 
     mavenCentral() 
    } 
} 

Я хотел был бы удостовериться, что crashlytics будет присутствовать для всего проекта. Первоначально я пытался добавить

apply plugin: 'crashlytics' 

в основной файл проекта Gradle, но я столкнулся следующее сообщение об ошибке:

Error:(2, 0) Crashlytics was applied to a project without an Android plugin. Please make sure the Crashlytics plugin is applied after the appropriate Android plugin for your project.

Затем я переехал в apply plugin: 'crashlytics' к основному модулю (мое приложение) Gradle файл сборки и сборка была успешной.

С тех пор, как я новичок в Gradle & Android Studio, я не был уверен, что мне нужно это также для подмодулей A, B, C, чтобы позволить crashlytics захватывать исключения, генерируемые из этих модулей. Также мне интересно, почему я не могу (или как я могу) добавить «применить плагин:« crashlytics »к основному файлу проекта.

Может ли кто-нибудь уточнить это для меня?

ответ

0

Исключение из субмодуля (модуль библиотеки так, не вы модуль приложения) будет сообщен если основное приложение авария. Если он правильно обрабатывает и не происходит сбой, ничего не сообщается.

В общем, изменить приложение (субмодуля) build.gradle. Иногда вам нужно изменить градиент верхнего уровня, чтобы добавить общие зависимости.

Appli плагин:
Вы не можете использовать плагин для верхнего уровня Gradle, как это Gradle проект, а не модуль Gradle. Не уверен об этом.

Дополнительное примечание:
Твиттер Crashlytics и куплен интегрировали его в Fabric. Я рекомендую вам использовать плагин Fabric, который позволит вам иметь некоторую статистику в действительно приятном интерфейсе. Также он поддерживает iOS и Android на той же пластинке, с поддержкой бота (Jira и т. Д.).

При использовании ткани, приложение Gradle файл сборки будет выглядеть следующим образом:

buildscript { 
    repositories { 
     maven { url 'https://maven.fabric.io/public' } 
    } 

    dependencies { 
     classpath 'io.fabric.tools:gradle:1.+' 
    } 
} 
apply plugin: 'com.android.application' 
apply plugin: 'io.fabric' 

... 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    ... 
    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
     transitive = true; 
    } 
} 
+0

Однако, я все еще не уверен по поводу ошибки (если я применяю плагин в верхнем Gradle уровня) ..как работает директива плагина? каков его объем? –

+0

@MaximRahlis Я не знаю, вам понадобится документация по градиенту браузера –

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