Android Received status code 502 from server: Bad Gateway
androidStudio 打包APK 报错 :Received status code 502 from server: Bad Gateway 如何解决?此篇博文给出答案 Jcenter的不维护 趁早迁移数据依赖仓 有效尽早避免此类问题的发生!
前言
今天正常上班 因为线上有个机器出现了白屏bug 所以我就远程查看了下问题
发现是一个空指针造成的 但是这个bug我记得我几个月前就改过了
但是还是有这个问题 说明线上机器 运维人员没有更新新的apk包
好了废话说了这么多
有bug就解决 重新打个新包 再发给运维人员 就解决了
但是
打包的时候编译器报错了
报错内容是:Android Received status code 502 from server: Bad Gateway
------------------从服务器接收到状态代码502:失败网关
爆了一堆异常 仔细看一下 其实是远程依赖的仓库 没有读取到资源 其中有 友盟
app更新
还有鲁班
我就很奇怪 昨天还在打包新的项目apk 今天打包老的项目 就报了一堆的错误
找人问了一下说是Jcenter
的仓库不维护造成的
但是我依赖的时候 是按照 maven仓库
依赖的
那就很奇怪了 为什么会报异常 还有人说是公司网络的问题 导致远程仓库依赖 失败
说了这么多都是前因 如何解决呢?
解决思路
因为我昨天在打包新的项目时 还没有报错 并且可以正常打包 所以我确定 新项目是没有问题的
所以我就按照新项目的 配置 迁移到老项目适配
例如
新项目的build.gradle
文件
buildscript {
ext.kotlin_version = '1.4.10'
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.6.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
老项目的build.gradle
文件
其他多余的 镜像仓库 我们不管 比如阿里云 或者 google jcenter umeng
只是把
google()
jcenter()
maven { url 'https://jitpack.io' }
以上内容加入老项目
buildscript {
apply from: "config.gradle"
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
maven { url 'https://dl.bintray.com/umsdk/release' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
}
dependencies {
classpath 'com.android.tools.build:gradle:3.5.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
maven { url 'https://jitpack.io' }
maven { url 'https://dl.bintray.com/umsdk/release' }
maven { url 'http://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/jcenter' }
maven { url 'http://repo1.maven.org/maven2' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/google' }
maven { url 'http://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
结果
这里可以看到编译成功了
来自群友的肯定!!
能不能正常打包apk呢?
实践证明也是可以的
总结
我不知道是不是这个问题导致的 但是这种方法确实可以解决 远程仓库依赖下载不了资源的问题
找了很多资料都没有找到解决答案
希望可以帮到和我一样问题的开发者
这种配置上的问题 其实不好找
有一点需要重视 就是jcenter
不在维护 并只延长一年的使用权限
尽早迁移 还是多多益善
这里推荐一个 组件Nexus Repository 特殊项目,里面的库找不到或者很慢,就自己加仓
共勉!
更多推荐
所有评论(0)