Android Studio 3.0 Gradle не удалось выполнить синхронизацию: java.lang.AssertionError(в UnresolvedDependenciesReporter)

При переносе на Android Studio 3.0-beta1 я запускаю ошибку с ошибкой gradle, которая не предоставляет много информации. В консоли gradle отсутствует сообщение об ошибке. Мне нужно было перейти в файл idea.log, чтобы получить следующую трассировку стека:

java.lang.RuntimeException: java.lang.AssertionError
    at com.intellij.openapi.application.TransactionGuardImpl.submitTransactionAndWait(TransactionGuardImpl.java:174)
    at com.intellij.openapi.command.WriteCommandAction.execute(WriteCommandAction.java:155)
    at com.android.tools.idea.gradle.project.sync.idea.data.service.ModuleModelDataService.importData(ModuleModelDataService.java:80)
    at com.android.tools.idea.gradle.project.sync.idea.data.service.ModuleModelDataService.importData(ModuleModelDataService.java:50)
    at com.intellij.openapi.externalSystem.service.project.manage.ProjectDataManager.doImportData(ProjectDataManager.java:246)
    at com.intellij.openapi.externalSystem.service.project.manage.ProjectDataManager.importData(ProjectDataManager.java:143)
    at com.intellij.openapi.externalSystem.service.project.manage.ProjectDataManager.importData(ProjectDataManager.java:198)
    at com.intellij.openapi.externalSystem.service.project.manage.ProjectDataManager.importData(ProjectDataManager.java:204)
    at com.android.tools.idea.gradle.project.sync.idea.IdeaSyncPopulateProjectTask.doSelectiveImport(IdeaSyncPopulateProjectTask.java:206)
    at com.android.tools.idea.gradle.project.sync.idea.IdeaSyncPopulateProjectTask.populate(IdeaSyncPopulateProjectTask.java:156)
    at com.android.tools.idea.gradle.project.sync.idea.IdeaSyncPopulateProjectTask.access$000(IdeaSyncPopulateProjectTask.java:51)
    at com.android.tools.idea.gradle.project.sync.idea.IdeaSyncPopulateProjectTask$1.run(IdeaSyncPopulateProjectTask.java:144)
    at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:726)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:176)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:556)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:501)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:163)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$1.run(ProgressManagerImpl.java:137)
    at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:334)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.AssertionError
    at com.android.tools.idea.gradle.project.sync.issues.UnresolvedDependenciesReporter.report(UnresolvedDependenciesReporter.java:79)
    at com.android.tools.idea.gradle.project.sync.issues.SyncIssuesReporter.report(SyncIssuesReporter.java:86)
    at com.android.tools.idea.gradle.project.sync.issues.SyncIssuesReporter.report(SyncIssuesReporter.java:71)
    at com.android.tools.idea.gradle.project.sync.setup.module.android.DependenciesAndroidModuleSetupStep.doSetUpModule(DependenciesAndroidModuleSetupStep.java:98)
    at com.android.tools.idea.gradle.project.sync.setup.module.android.DependenciesAndroidModuleSetupStep.doSetUpModule(DependenciesAndroidModuleSetupStep.java:64)
    at com.android.tools.idea.gradle.project.sync.setup.module.ModuleSetupStep.setUpModule(ModuleSetupStep.java:34)
    at com.android.tools.idea.gradle.project.sync.setup.module.AndroidModuleSetup.setUpModule(AndroidModuleSetup.java:44)
    at com.android.tools.idea.gradle.project.sync.idea.data.service.AndroidModuleModelDataService.setUpModule(AndroidModuleModelDataService.java:93)
    at com.android.tools.idea.gradle.project.sync.idea.data.service.AndroidModuleModelDataService.importData(AndroidModuleModelDataService.java:79)
    at com.android.tools.idea.gradle.project.sync.idea.data.service.ModuleModelDataService$1.run(ModuleModelDataService.java:78)
    at com.intellij.openapi.command.WriteCommandAction$Simple.run(WriteCommandAction.java:234)
    at com.intellij.openapi.application.RunResult.run(RunResult.java:35)
    at com.intellij.openapi.command.WriteCommandAction.lambda$null$1(WriteCommandAction.java:171)
    at com.intellij.openapi.application.impl.ApplicationImpl.runWriteAction(ApplicationImpl.java:1023)
    at com.intellij.openapi.command.WriteCommandAction.lambda$performWriteCommandAction$2(WriteCommandAction.java:170)
    at com.intellij.openapi.command.WriteCommandAction.lambda$doExecuteCommand$4(WriteCommandAction.java:210)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:149)
    at com.intellij.openapi.command.impl.CoreCommandProcessor.executeCommand(CoreCommandProcessor.java:119)
    at com.intellij.openapi.command.WriteCommandAction.doExecuteCommand(WriteCommandAction.java:212)
    at com.intellij.openapi.command.WriteCommandAction.performWriteCommandAction(WriteCommandAction.java:168)
    at com.intellij.openapi.command.WriteCommandAction.lambda$execute$0(WriteCommandAction.java:155)
    at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransactionAndWait$2(TransactionGuardImpl.java:163)
    at com.intellij.openapi.application.TransactionGuardImpl.runSyncTransaction(TransactionGuardImpl.java:86)
    at com.intellij.openapi.application.TransactionGuardImpl.lambda$submitTransaction$1(TransactionGuardImpl.java:109)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:410)
    at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:399)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
    at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:827)
    at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:655)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:365)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Я выполнил документацию по миграции, но по-прежнему не могу заставить синхронизацию работать успешно. Не уверен, что это проблема в Android Studio 3.0-beta1 или моей конфигурации проекта. Я запустил другие проекты и создал новые с Android Studio 3.0-alphaX, так что склоняюсь к моему проекту.

Ответ 1

Проблема заключалась в том, что я не выбрал значения по умолчанию для отсутствующих типов сборки. Мой проект имеет 2 модуля со следующей конфигурацией типов сборки:

Данные/build.gradle

apply plugin: 'com.android.library'
android {
    ...
    buildTypes {
        debug { ... }
        release { ... }
    }
}

приложение/build.gradle

apply plugin: 'com.android.application'
android {
    ...
    buildTypes {
        debug { ... }
        dev { ... }
        qa { ... }
        rc { ... }
        release { ... }
    }
}

С последним плагином Android gradle ваши типы сборки должны совпадать с библиотекой и модулями приложений. Моя проблема заключалась в том, что мой модуль данных не определял типы dev, qa и rc. Я решил это, используя buildTypeMatching в своем прикладном модуле:

приложение/build.gradle

apply plugin: 'com.android.application'
android {
    ...

    buildTypeMatching 'dev', 'debug'
    buildTypeMatching 'qa', 'debug'
    buildTypeMatching 'rc', 'release'

    buildTypes {
        debug { ... }
        dev { ... }
        qa { ... }
        rc { ... }
        release { ... }
    }
}

Вы также можете добавить недостающие варианты в библиотечные модули.

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

Ответ 2

Просто отключите автономный режим. Это работает для меня.

Ответ 3

В моем случае перезагрузка Android Studio решила мою проблему

Ответ 4

Попробуйте сделать

  • Сборка → Очистить проект

Ответ 5

Ушел в аналогичную проблему, но для меня это было потому, что я забыл инициализировать мои подмодули git, которые привели к тому, что один модуль Android не был там, бросая ту же ошибку...

Ответ 6

Эта ошибка произошла и со мной. Оказывается, это та же самая причина, что и kyhule, buildTypes в другом модуле gradle должны быть точно совпадают.

Просто хочу добавить точку, что будет легче узнать, где ошибка, построив gradle из терминала с командной строкой ./gradlew build. Он предоставит более полезную информацию, которую вы сможете найти, чтобы решить вашу проблему.

Ответ 7

Когда у меня возникла аналогичная ошибка, оказалось, что мне нужно использовать более новую версию Android Studio. Я получил эту ошибку, когда использовал Android Studio 3 Canary 2, но затем использовал последнюю бета-версию, и это решило мою проблему.

Ответ 8

Попробуйте Файл → Недействительные Кэши/Перезапуск

Ответ 9

Для меня журнал событий показал:

2:18 PM Project setup started

2:18 PM Gradle sync failed: EventQueue.isDispatchThread()=false Toolkit.getEventQueue()[email protected]
                Current thread: Thread[ApplicationImpl pooled thread 3,4,Idea Thread Group] 1439896692
                SystemEventQueueThread: Thread[AWT-EventQueue-0,6,Idea Thread Group] 519777864 (2 s 913 ms)

2:18 PM Syncing only active variant
                You can disable this experimental feature from
                File → Settings → Experimental → Gradle → Only sync the active variant

Я попробовал все, но, конечно же, я просто должен был сделать то, что он сказал, и снять флажок "Только синхронизировать активный вариант". Не уверен, как это было проверено в первую очередь.