Gradle не удалось выполнить синхронизацию: причина: ошибка при открытии zip файла Корректный кэш зависимостей

Привет, ребята Я новичок в Android Studio и только начал изучать этот онлайн-курс "Разработка приложений для Android" от Udacity. Проблема в том, что проект, который я разрабатываю, соответствует курсу " Sunshine" неправильно синхронизируется...

Это сообщение отображается в журналах событий.

Gradle не удалось выполнить синхронизацию: причина: ошибка при открытии zip файла

Полное описание журналов:

**2017-03-04 08:14:32,358 [  61978]   WARN - nal.AbstractExternalSystemTask - Cause: error in opening zip file 
com.intellij.openapi.externalSystem.model.ExternalSystemException: Cause: **error in opening zip file**
    at com.android.tools.idea.gradle.project.sync.idea.ProjectImportErrorHandler.getUserFriendlyError(ProjectImportErrorHandler.java:86)
    at com.android.tools.idea.gradle.project.sync.idea.AndroidGradleProjectResolver.getUserFriendlyError(AndroidGradleProjectResolver.java:361)
    at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver$ProjectConnectionDataNodeFunction.fun(GradleProjectResolver.java:769)
    at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver$ProjectConnectionDataNodeFunction.fun(GradleProjectResolver.java:749)
    at org.jetbrains.plugins.gradle.service.execution.GradleExecutionHelper.execute(GradleExecutionHelper.java:227)
    at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.java:112)
    at org.jetbrains.plugins.gradle.service.project.GradleProjectResolver.resolveProjectInfo(GradleProjectResolver.java:72)
    at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl.lambda$resolveProjectInfo$0(RemoteExternalSystemProjectResolverImpl.java:37)
    at com.intellij.openapi.externalSystem.service.remote.AbstractRemoteExternalSystemService.execute(AbstractRemoteExternalSystemService.java:59)
    at com.intellij.openapi.externalSystem.service.remote.RemoteExternalSystemProjectResolverImpl.resolveProjectInfo(RemoteExternalSystemProjectResolverImpl.java:37)
    at com.intellij.openapi.externalSystem.service.remote.wrapper.ExternalSystemProjectResolverWrapper.resolveProjectInfo(ExternalSystemProjectResolverWrapper.java:49)
    at com.intellij.openapi.externalSystem.service.internal.ExternalSystemResolveProjectTask.doExecute(ExternalSystemResolveProjectTask.java:51)
    at com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:138)
    at com.intellij.openapi.externalSystem.service.internal.AbstractExternalSystemTask.execute(AbstractExternalSystemTask.java:124)
    at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$3.execute(ExternalSystemUtil.java:415)
    at com.intellij.openapi.externalSystem.util.ExternalSystemUtil$5.run(ExternalSystemUtil.java:494)
    at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:635)
    at com.intellij.openapi.progress.impl.CoreProgressManager$3.run(CoreProgressManager.java:170)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:494)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:443)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:155)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl$1.run(ProgressManagerImpl.java:128)
    at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:307)
    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.util.zip.ZipException: **error in opening zip file**
    at java.util.zip.ZipFile.open(Native Method)
    at java.util.zip.ZipFile.<init>(ZipFile.java:219)
    at java.util.zip.ZipFile.<init>(ZipFile.java:149)
    at java.util.zip.ZipFile.<init>(ZipFile.java:163)
    at org.gradle.wrapper.Install.unzip(Install.java:214)
    at org.gradle.wrapper.Install.access$600(Install.java:27)
    at org.gradle.wrapper.Install$1.call(Install.java:74)
    at org.gradle.wrapper.Install$1.call(Install.java:48)
    at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:69)
    at org.gradle.wrapper.Install.createDist(Install.java:48)
    at org.gradle.tooling.internal.consumer.DistributionFactory$ZippedDistribution$1.call(DistributionFactory.java:139)
    at org.gradle.tooling.internal.consumer.DistributionFactory$ZippedDistribution$1.call(DistributionFactory.java:133)
    ... 4 more**

Может ли кто-нибудь указать мне в правильном направлении, как решить эту проблему?

Ответ 1

Просто удалите папку Gradle из вашего домашнего каталога! т.е.

~/<username>/.gradle/wrapper/dists/<gradle-name>

где gradle-name - это дистрибутив, который вы должны удалить. Затем откройте Android Studio и откройте проект, чтобы синхронизировать Gradle заново.

Ответ 2

Вызвано: java.util.zip.ZipException: ошибка при открытии zip файла

Это означает, что файл, который скачал Gradle, поврежден по тем или иным причинам. Это может быть загрузка самого Gradle (что делает обертка) или любая зависимость, которую Gradle загрузил для запуска вашей сборки.

Gradle не пытается обнаружить или решить проблему, поэтому вам нужно исправить ее вручную. Решение часто состоит в том, чтобы очистить кэши загрузки Gradle и позволить ему получать свежие копии того, что ему нужно.


Для этого удалите .gradle как в своем домашнем каталоге, так и в корневом каталоге своего проекта и попробуйте .gradle заново.

В вашем случае домашний каталог

C:\Users\User\.gradle

Ответ 3

Следующее - мое решение.

  • Загрузите файл вручную, указанный в дистрибутивеUrl, который определен в файле $PROJECT/ gradle/wrapper/gradle -wrapper.properties. В моем случае строка выглядит так:

    distributionUrl=https\://services.gradle.org/distributions/gradle-2.14.1-bin.zip
    
  • Скопируйте загруженный файл в путь, указанный в вышеупомянутом файле gradle -wrapper.properties. В моем случае gradle -2.14.1-bin.zip следует поместить в папку:

    ~/.gradle/wrapper/dists/gradle-2.14.1-bin/2r579t5wehc7ew5kc8vfqezww
    

    Так как gradle попытался загрузить gradle -2.14.1-bin.zip, но не удалось, у него есть сломанный gradle -2.14.1-bin.zip в этой папке. Просто замените сломанный файл вручную.

  • Вернитесь в студию android и нажмите на гиперссылку сообщения об ошибке. Он должен продолжить синхронизацию.

Ответ 4

Я создал новый проект, когда появилась эта ошибка. В терминале:

cd /Users/<user>/.gradle/wrapper/dists
ls

Здесь я мог видеть, что Android-студия пыталась загрузить gradle-4.6-all, в то время как у меня уже была gradle-4.10-all (это работало для меня в более ранних проектах). Я удалил папку rm -r gradle-4.6-all.

В моем файле gradle-wrapper.properties я заменил URL-адрес distributionUrl=https\://services.gradle.org/distributions/gradle-4.10-all.zip Синхронизировал мой проект, и он сработал.

Ответ 5

Загрузить gradle последнюю версию с этой ссылкой https://services.gradle.org/distributions/ Извлеките файлы в каталог gradle теперь перейдите в android studio file > setup > build > exec deploy change default gradle местоположение в локальный gradle, который вы загрузили щелкните ОК и перестройте проект который исправит

Ответ 6

проблема заключается в том, что у android studio/gradle нет разрешения на доступ к файлам в папке проекта. для исправления этого перейдите в папку проектa > properties > security > edit и выберите полный контроль для вашего текущего пользователя или всех из них редактирование прав пользователей

Ответ 7

~/<username>/.gradle/wrapper/dists/<gradle-name>

удалите этот gradle и установите его снова