0

У меня есть Crashlytics, работающий в моем приложении.Использование CrashAnalytics в Android-модуле

Я добавил модуль Android в свое приложение под названием «engine-module», у которого есть собственные зависимости Gradle.

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

Error:(31, 13) Failed to resolve: com.crashlytics.sdk.android:crashlytics:2.6.5

То, что я хочу, чтобы достичь является возможность получить доступ к «Crashlytics» из класса в пределах ' двигатель-модуль», например: возможность

Crashlytics.setUserName("temp user name"); 

ли это? Если да, то как это можно достичь?

Проект: build.gradle

buildscript { 
    repositories { 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.2.3' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

subprojects { 
    apply from: '../jacoco.gradle' 
} 

App/build.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' 

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

apply plugin: 'com.neenbedankt.android-apt' 

/** 
* Default values for configuration options 
*/ 
def suffixDefault = "" 
def versionCodeDefault = 1 
def versionNameDefault = "developerBuilt" 

/** 
* Android-specific configuration 
*/ 
android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.0" 
    defaultConfig { 
     applicationId "com.flowmellow.projectx 
     minSdkVersion 16 
     targetSdkVersion 25 
     versionCode project.getProperties().get('versionCode') ? project.getProperties().get('versionCode').toInteger() : versionCodeDefault 
     versionName project.getProperties().get('versionName') ? project.getProperties().get('versionName') : versionNameDefault 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     debug { 
      // Configurable options 
      applicationIdSuffix project.getProperties().get('appIdSuffix', suffixDefault) + ".debug" 

      // Common options 
      testCoverageEnabled true 
     } 
     release { 
      // Configurable options 
      applicationIdSuffix project.getProperties().get('appIdSuffix', suffixDefault) 

      // Common options 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

/** 
* Dependencies 
*/ 
dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:25.0.0' 
    compile 'com.android.support:design:25.0.0' 

    //Dependency injection 
    apt 'com.google.dagger:dagger-compiler:2.7' 
    compile 'com.google.dagger:dagger:2.7' 
    provided 'javax.annotation:jsr250-api:1.0' 

    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 

    testCompile 'junit:junit:4.12' 
    testCompile 'org.hamcrest:hamcrest-library:1.1' 
    testCompile 'org.mockito:mockito-core:1.9.5' 
    testCompile 'org.robolectric:robolectric:3.1.2' 
    testCompile 'org.hamcrest:hamcrest-library:1.1' 
    compile 'com.android.support.constraint:constraint-layout:+' 
    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
     transitive = true; 
    } 
    compile project(path: ':engine-module') 

} 

Модуль: двигатель-модуль/build.gradle

apply plugin: 'com.android.library' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.0" 

    defaultConfig { 
     minSdkVersion 16 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 

     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 

    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 

    compile 'com.android.support:support-annotations:25.0.0' 

    testCompile 'junit:junit:4.12' 
    testCompile 'org.mockito:mockito-core:1.9.5' 
    testCompile 'org.robolectric:robolectric:3.1.2' 
    compile 'com.crashlytics.sdk.android:crashlytics:2.6.5' 
} 

РЕШИТЬ:

Проект: build.gradle

buildscript { 
    repositories { 
     jcenter() 
     maven { url 'https://maven.fabric.io/public' } 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.2.3' 
     classpath 'io.fabric.tools:gradle:1.+' 
    } 
} 

allprojects { 
    repositories { 
     jcenter() 
     maven { url 'https://maven.fabric.io/public' } 
    } 
} 

task clean(type: Delete) { 
    delete rootProject.buildDir 
} 

subprojects { 
    apply from: '../jacoco.gradle' 
} 

Модуль: двигатель-модуль/build.gradle

apply plugin: 'com.android.library' 
apply plugin: 'io.fabric' 

android { 
    compileSdkVersion 25 
    buildToolsVersion "25.0.0" 

    defaultConfig { 
     minSdkVersion 16 
     targetSdkVersion 25 
     versionCode 1 
     versionName "1.0" 

     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 

    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 

    compile 'com.android.support:support-annotations:25.0.0' 

    testCompile 'junit:junit:4.12' 
    testCompile 'org.mockito:mockito-core:1.9.5' 
    testCompile 'org.robolectric:robolectric:3.1.2' 

    compile('com.crashlytics.sdk.android:crashlytics:[email protected]') { 
    transitive = true; 
    } 
} 

ответ

1

Вы не определили никаких репозиториев для engine-module, это означает, что он не может разрешить связанные зависимости.

Обычно люди определяют хранилища для всего своего проекта, добавив следующий код в корень build.gradle

subprojects { 
    repositories { 
     // Add repositories here 
    } 
} 

Это делает эти хранилища, доступные для всех подпроектов.

+0

Спасибо, что это была моя проблема, не используя root build.gradle –

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