Android Studio 3.0依赖问题

时间:2017-11-02 05:45:43

标签: android android-gradle dependencies android-studio-3.0

获取错误:

  

错误:无法解析':app @ debugUnitTest / compileClasspath':无法解析com.googlecode.mp4parser:isoparser:1.1.22。       打开文件
显示细节

依赖性:

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。 要求:     项目:app

  

无法解析com.googlecode.mp4parser:isoparser:1.1.22。   无法获得资源' https://repo1.maven.org/maven2/com/googlecode/mp4parser/isoparser/1.1.22/isoparser-1.1.22.pom'。   org.apache.http.ssl.SSLInitializationException:字节0周围的格式错误的输入   字节0周围的输入格式错误   字节0周围的格式错误输入

6 个答案:

答案 0 :(得分:4)

只需确保您的根级gradle.build文件是这样的。您需要在项目和所有项目中使用repo:

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
}

我能够解决依赖:

enter image description here

答案 1 :(得分:4)

花了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文件中,我找到了这个logtrace:

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运行时。

在针对android studio JRE的cacerts文件运行malformed input around byte 12时,我遇到了同样的keytool错误

> 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 studio安装中的cacerts文件替换为我机器的java安装中的文件,并且恢复正常。我的假设是在更新到3.0期间文件已损坏,这似乎是看到此内容的人中的一致线程。

希望这有助于任何人仍然遇到此问题。

答案 2 :(得分:1)

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

答案 3 :(得分:0)

我检查jcenter repo。

中也提供awk '{ sub("true},}","true}"); ##Substitute string true},} to true} with the use of sub utility of awk here. sub(/\"active\":true}/,"&\n") ##Substituting "active":true} here with same string mentioned by & and a new line in current line. } 1 ##Mentioning 1 here, so awk works on condition and action. So by mentioning 1 here I am making condition TRUE here and NOT mentioning ##any action here, so by default print of current line will happen. ' Input_file ##Mentioning the Input_file here. 工件

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

isoparser

答案 4 :(得分:0)

还添加这些回购:

jcenter()
google()

如果您落后于代理,则可能存在https连接问题,因此您可以通过添加以下内容强制它使用http:

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

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

答案 5 :(得分:0)

确保“设置”中的“离线工作” - &gt; “构建,执行,部署” - &gt; “Gradle”已停用。