Ошибка сборки Android Studio - «Не удалось разрешить: монитор» - PullRequest
0 голосов
/ 25 октября 2018

У меня был ранее запущенный проект, где версии были обновлены до последней.Теперь я не могу собрать проект из-за ошибки сборки ниже.

Не удалось разрешить: мониторОткрыть файл

Ссылка «Открыть файл» относится к файлу build.gradle (Module).Я пытался "Invalidate and Restart", который не помогает.

Поиск в разделах «Не удалось разрешить: монитор» или «Не удалось разрешить:» не привел к каким-либо решениям.

В данный момент я полностью озадачен.

Модуль: build.gradle

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    buildToolsVersion '28.0.3'

    defaultConfig {
        applicationId "com.example.android.sunshine"
        minSdkVersion 14
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
        }
    }
    productFlavors {
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:28.0.0'

    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'com.android.support:preference-v7:28.0.0'

    androidTestImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support:support-annotations:28.0.0'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test:rules:1.0.2'
}

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Кажется, проблема в jcenter.Я потратил часы вместе с этой проблемой, и ваша проблема, кажется, похожа на мою, и я думаю, что следующее решение должно работать.

По некоторым причинам и для многих библиотек в jcenter файлы pom многих библиотек сохраняютсяна месте, но соответствующие файлы AAR были удалены.Это также относится и к библиотеке play-services-basement .Для справки проверьте следующее (pom-файл play-services-basement доступен по адресу jcentre здесь , но aar-файл недоступен по адресу jcentre здесь ):

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

allprojects {
    repositories {
        jcenter()
        google()
    }
}

на

allprojects {
    repositories {
        google()
        jcenter()
    }
}

почему этоработает?

В нашем первом блоке кода, когда gradle пытается разрешить зависимость в репозитории (в моем случае это был google-services-basement в репозитории jcentre), он не разрешается каксоответствующие файлы aar были удалены.В результате сборка завершается неудачно с чем-то вроде:

 Could not find play-services-basement.aar (com.google.android.gms:play-services-basement:15.0.1).

Во втором блоке кода ссылка на репозиторий Google была указана до репозитория jcenter.Когда начинается сборка gradle, она сначала просматривает библиотеки, перечисленные первыми в репозиториях {..., для поиска любой библиотеки, которая используется в проекте.Теперь, когда gradle пытается разрешить play-services-basement в jcenter, он успешно разрешает зависимости, так как соответствующий файл aar был сделан доступным из репозитория google (тот же файл aar последней версии недоступен в репозитории jcenter), который былссылка до оценки хранилища jcenter.Проверьте и дайте мне знать, если это работает.

0 голосов
/ 25 октября 2018

Я сталкивался с этой проблемой вчера, когда извлекал новую ветку из репозитория Git или создавал новый проект в Android Studio.

Основная причина: Когда я пытаюсь создать приложение,Android Studio показывает эту ошибку

Could not find monitor.jar (com.android.support.test:monitor:1.0.2).
Searched in the following locations:
    https://jcenter.bintray.com/com/android/support/test/monitor/1.0.2/monitor-1.0.2.jar

Открытие https://jcenter.bintray.com/com/android/support/test/monitor/1.0.2/monitor-1.0.2.jar в браузере Я получил эту ошибку.

{
  "errors" : [ {
    "status" : 404,
    "message" : "Could not find resource"
  } ]
}

Я предполагаю, что зависимость monitor была удалена(может быть временно) из jcenter репо.В результате процесс сборки не удался.Итак, я разобрался с двумя решениями:

Решение 1 : перейдите на build.gradle (Project), чтобы изменить порядок репо, чтобы система сборки gradle сначала нашла monitor зависимость в google репо.К счастью, эта зависимость доступна в репо (по крайней мере, пока).

allprojects {
    repositories {
        jcenter()
        google()
    }
}

до

allprojects {
    repositories {
        google()
        jcenter()
    }
}

Решение 2 : Перейти к build.gradle (Module:App) комментарийили удалите эти строки.Это означает, что нашему приложению не нужна библиотека поддержки тестирования Android, которая предоставляет обширную платформу для тестирования приложений Android.

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:28.0.0'

    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'com.android.support:preference-v7:28.0.0'

    androidTestImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support:support-annotations:28.0.0'

    // Comment-out or delete these lines
//    androidTestImplementation 'com.android.support.test:runner:1.0.2'
//    androidTestImplementation 'com.android.support.test:rules:1.0.2'
}

Затем нажмите Синхронизировать сейчас .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...