Android Studio 3.0 依赖问题

Android Studio 3.0 Dependency issue

获取错误:

Error:Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Could not resolve com.googlecode.mp4parser:isoparser:1.1.22. Open File
Show Details

对于依赖项:

compile 'com.googlecode.mp4parser:isoparser:1.1.22'

但对于依赖:

compile 'com.googlecode.mp4parser:isoparser:1.1.20'

Gradle同步成功。

尝试使用存储库:

repositories {
    mavenCentral()
}

详细错误:

无法解析“:app@StagingUnitTest/compileClasspath”的依赖关系:无法解析 com.googlecode.mp4parser:isoparser:1.1.22.

无法解析 com.googlecode.mp4parser:isoparser:1.1.22。 要求: 项目:应用

Could not resolve com.googlecode.mp4parser:isoparser:1.1.22. Could not get resource 'https://repo1.maven.org/maven2/com/googlecode/mp4parser/isoparser/1.1.22/isoparser-1.1.22.pom'. org.apache.http.ssl.SSLInitializationException: malformed input around byte 0 malformed input around byte 0 malformed input around byte 0

只需确保您的根级别 gradle.build 文件是这样的。您需要在项目和所有项目中进行回购:

buildscript {
    repositories {
        mavenCentral()
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

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

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

我能够解决依赖关系:

正如我检查的那样 isoparser 神器也可在 jcenter 存储库中获得。

所以在您的存储库中添加 jcenter link。

repositories {
    mavenCentral()
    jcenter()
    google()        // <- required, when artifact is in google repo
}

还添加这些存储库:

jcenter()
google()

如果您使用代理,则 https 连接可能会出现问题,因此您可以强制使用 http,方法是添加:

maven { url "http://jcenter.bintray.com/" }
maven { url "http://repo.maven.apache.org/maven2" }
maven { url "http://maven.google.com" }

更新:昨天我遇到了类似的包错误,尝试了一切但最后唯一的解决方案是删除整个 .gradle 用户配置文件中的文件夹(不在项目中) ,或在 Linux 中的用户主目录中。之后将开始长时间同步,但最终一切都会好起来的。 似乎这个问题是由 gradle 缓存在 AS 更新到新版本期间损坏引起的。 Windows 和 Fedora 系统都发生过这种情况。而HTTP错误消息只是让所有人以错误的方式寻求解决方案。

经过大量研究和分析,重新安装 android studio 3.0 解决了问题。

确保 "Settings" -> "Build, execution, deployment" -> "Gradle" 中的 "Offline work" 已禁用。

刚刚花了 1.5 个小时调查这个。我的根本错误是

Could not resolve all dependencies for configuration ':classpath'.
Could not resolve io.fabric.tools:gradle:1.+.
 Required by:
     project :
  > Could not resolve io.fabric.tools:gradle:1.+.
     > Failed to list versions for io.fabric.tools:gradle.
        > Unable to load Maven meta-data from https://repo1.maven.org/maven2/io/fabric/tools/gradle/maven-metadata.xml.
           > org.apache.http.ssl.SSLInitializationException: malformed input around byte 12

idea.log 文件中,我发现了这个日志跟踪:

2018-02-15 18:32:32,220 [entQueue-0]  ERROR - net.ssl.ConfirmingTrustManager - Cannot get system trust store 
java.security.KeyStoreException: problem accessing trust storejava.io.UTFDataFormatException: malformed input around byte 12
    at sun.security.ssl.TrustManagerFactoryImpl.engineInit(TrustManagerFactoryImpl.java:74)

    at javax.net.ssl.TrustManagerFactory.init(TrustManagerFactory.java:250)

    at com.intellij.util.net.ssl.ConfirmingTrustManager.getSystemDefault(ConfirmingTrustManager.java:82)

    at com.intellij.util.net.ssl.ConfirmingTrustManager.createForStorage(ConfirmingTrustManager.java:75)

    at com.intellij.util.net.ssl.CertificateManager.<init>(CertificateManager.java:130)

事实证明,问题根本不在于 Gradle,而在于 Android Studio 的内部 JRE 运行时。

当 运行 keytool 针对 android studio JRE

的 cacerts 文件时,我遇到了相同的 malformed input around byte 12 错误
> keytool.exe -list -keystore /c/Program\ Files/Android/Android\ Studio/jre/jre/lib/security/cacerts
keytool error: java.io.UTFDataFormatException: malformed input around byte 12

我将 android 工作室安装中的 cacerts 文件替换为计算机 java 安装中的文件,一切恢复正常。我的假设是文件在更新到 3.0 期间损坏了,这似乎是看到这个的人的一致线索。

希望这对仍然遇到此问题的任何人有所帮助。