Android Studio不能获取远程依赖包的完美解决方法

最近被一个AS的sync问题困扰,在引入远程依赖包的时候,会出现一个sync错误,提示找不到这个类库。然而,并不是所有的工程都会出现这个问题,有的工程引入同样的类库却没有问题。

Error:(25, 13) Failed to resolve: com.jakewharton:butterknife:5.1.1

网上查了下(http://stackoverflow.com/questions/20746071/failed-to-build-android-hello-world-application-in-offline-mode),说是设置了offline work,需要将gradle设置里的offline work去掉,然而我的AS中并没有勾选这个选项。

试一下把这个选项打开是什么效果,打开后重新sync出现下面的错误,和之前的错误有点差别,多了错误提示“Disable offline mode and Sync”。也就是说,出现了如下这个问题的时候,可以通过关闭“offline work”选项来解决。

还是没有找到我们问题的真正原因,只能继续排查。偶然间发现另外一个工程中的build.gradle文件中配置有些不同的地方,比出错工程的build.gradle文件多了一段。

出错工程的build.gradle文件配置:

apply plugin: 'android'buildscript
 {
repositories
{
jcenter
{
 url "http://jcenter.bintray.com/"
}
}
dependencies
{  classpath 'com.android.tools.build:gradle:1.3.0'
}}

正确工程的build.gradle文件配置:

apply plugin: 'android'buildscript
{ repositories
{
 jcenter
{
 url "http://jcenter.bintray.com/"
 }
 }
dependencies
 {  classpath 'com.android.tools.build:gradle:1.3.0'
 }
}
allprojects
 {
repositories
{
 jcenter()
}
}

试着给正确工程的build.gradle添加上这一段配置,重新sync,竟然通过了。。。

前面已经配置了远程仓库,怎么还需要再配置一份呢?还是需要查下build.gradle中的buildscript和allprojects两个配置项有什么差别。

原来buildscript中的声明是gradle脚本自身需要使用的资源。可以声明的资源包括依赖项、第三方插件、maven仓库地址等。而在build.gradle文件中直接声明的依赖项、仓库地址等信息是项目自身需要的资源。

“allprojects”这个配置项在Android Studio默认生成的工程中的build.gradle文件中是存在的,我这个工程之所以没有,是由于我的工程是从Eclipse工程转换来的。

总结

以上所述是小编给大家介绍的Android Studio不能获取远程依赖包的解决方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

时间: 2017-11-23

Android studio利用gradle打jar包并混淆的方法详解

本文主要介绍了Android studio利用gradle打jar包并混淆的方法,下面话不多说,来看看详细的介绍吧. 首先打jar包的配置很简单,使用jar的task,可以参考gradle官方文档,具体代码如下: task buildJar(type: Jar, dependsOn: ['assembleRelease']) { destinationDir = file('build/outputs/jar/') appendix = "" baseName = "&quo

android studio更新gradle错误构建项目失败的解决方法

一.版本错误 对应版本,修改gradle version,和plusing version两个地方修改gradle version,和plusing version的方法有两种,一种是在 project.build.这里plusing version的设置 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:2.3.0' } } allprojects

Android Studio中Run按钮是灰色的快速解决方法

首先是,在不同的AS中,gradle版本不同,下载的sdk版本不同,这些,都在gradle(Project.Models)相关代码里调过来就好.之前的文章里有说过. 经过调好gradle这些文件,AS已经可以built 成功后. 下一步,Run the application. 这时候,遇到问题:Run按钮灰色,失效. 点击Run旁边 Select Run/Debug Configuration按钮 选择 Edit Configuration,于是: 在model下拉框中选择app.如果下拉框中

ubuntu16.04下安装openssh-server报依赖错误的完美解决方法(非常不错)

问题:系统重装后,安装和配置SSH,防火墙配置 #安装install openssh-server sudo apt install openssh-server -y 遇到问题: sudo apt install openssh-server -y 正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 有一些软件包无法被安装.如果您用的是 unstable 发行版,这也许是 因为系统无法达到您要求的状态造成的.该版本中可能会有一些您需要的软件 包尚未被创建或

RedisDesktopManager无法远程连接Redis的完美解决方法

Linux环境:ubuntu16.04 Redis服务端版本:3.2.6 Redis客户端下载链接:https://redisdesktop.com/download 省略Linux系统安装Redis教程,网上安装教程很多:建议用tar.gz包安装 Redis官网tar.gz下载地址:wget http://xiazai.jb51.net/201803/yuanma/redis-3.2.6(jb51.net).rar 下载RedisDesktopManager客户端,输入服务器IP地址,端口(缺

PHP 获取远程文件大小的3种解决方法

1.使用file_get_contents() 复制代码 代码如下: <?php$file = file_get_contents($url);echo strlen($file);?> 2. 使用get_headers() 复制代码 代码如下: <?php$header_array = get_headers($url, true);$size = $header_array['Content-Length'];echo $size;?> PS:需要打开allow_url_fop

详解如何在Android Studio中添加RecyclerView-v7支持包

一直知道RecyclerView可以代替ListView.GridView使用,听说功能很强大,但还没有去学习过.今天想学习,没想到还没开始便撞墙了.输入Recycler,只有这两个东西,没有提示RecyclerView,说明支持包中没有. 最后一番百度后,终于解决(真不敢想象没有网络的情况下,怎么开发.怎么解决问题). 1.打开SDK Manager,在Extras树下找到Android Support Library,下载好支持包.RecyclerView在v7-21版本就出来了.我这里不用

Android Studio 引用外部依赖时报错的解决方法

Android Studio 在引用外部依赖时,发现一直无法引用外部依赖.刚开始以为是墙的问题,尝试修改Gradle配置,未解决问题. 最终发现原来是在Android Sudio安装优化配置时,将Gradle设置为了离线工作模式 解决方法: 只需打开File->Settings->Build,Execution,Deployment->Gradle->取消offline work勾选 总结 以上所述是小编给大家介绍的Android Studio报错Unable to resolve

Android Studio打包jar及aar包的方法

Android Studio 打包 jar 及 aar 包 创建工程 New -> Module -> Library 在gradle文件头添加 apply plugin: 'com.android.library' 打包模块 在库工程的 build.gradle 中最下方加入如下配置示例: // 删除已存在的 Jar 包 task deleteOldJar(type: Delete) { delete 'build/libs/analytics.jar' } // 创建 Jar 包 task