1
chenjiajia9411 2020-10-16 12:38:45 +08:00
你不会还在依赖 Apache HTTP Client 吧,那个早就在 API 23 弃用了……
https://developer.android.com/about/versions/marshmallow/android-6.0-changes#behavior-apache-http-client 然后在 API 29 的时候被彻底移除了: https://developer.android.com/about/versions/pie/android-9.0-changes-28#apache-p |
2
QBugHunter OP @chenjiajia9411
那怎么从工程里找到这个依赖,然后移出呢?我看了。gredle 文件没这个类的依赖 |
3
chenjiajia9411 2020-10-16 12:50:05 +08:00
@QBugHunter #2 这个依赖本来是系统库,不需要特地配置。你要做的是在代码里搜索还在引用 org.apache.http 或者 javax.servlet.http 的地方,读懂他们是干啥的,然后用适当的现代化的库和类去替换,或者就干脆放弃升级。
|
4
QBugHunter OP @chenjiajia9411
求教怎么升级。。。。我在网上查到就是说版本不对,但网上说要改一个 opt.xml 的文件,我找不到, 我在整个工程里搜索 javac.servlet.http 显示没有结果 |
5
QBugHunter OP @chenjiajia9411
或者说如何让工程不使用这个类 |
6
chenjiajia9411 2020-10-16 13:07:45 +08:00
@QBugHunter #5 ……没有具体的项目比较难看的啊,你搜的办法应该都是后端 Java EE 开发的办法,不适用于安卓的。类名搜索不到的话应该是第三方库的问题了,可以排查一遍第三方库的依赖或者源码看看(虽然我没记错的话 IDEA 的搜索可以包括第三方库的)。
如果你只是想干脆先让编译通过的话,试试在依赖里加一个“ compileOnly group: 'javax.servlet:javax.servlet-api:4.0.1' ”? |
7
chenjiajia9411 2020-10-16 13:08:31 +08:00
@chenjiajia9411 #6 compileOnly 'javax.servlet:javax.servlet-api:4.0.1'
不行的话把 compileOnly 换成 implementation. |
8
ChenFanlin 2020-10-16 13:10:31 +08:00
|
9
chenjiajia9411 2020-10-16 13:16:39 +08:00
@ChenFanlin #8 我是觉得升级看自己,有需要的功能就升级,像我需要 Java 8 library desugaring 所以才要升级到 4.0,就算是要兼容 Android 11 的包可见性更改,谷歌的办法也是提供就地更新而没有要求所有人都要升级到 4.1: https://developer.android.com/studio/releases/gradle-plugin#4-0-0
|
10
HongJay 2020-10-16 13:18:51 +08:00
4.1 是真的搞
|
11
QBugHunter OP @ChenFanlin
我也歪一下,怎么退回以前的版本。。。。 |
12
ChenFanlin 2020-10-16 13:37:18 +08:00
@QBugHunter #11 https://developer.android.com/studio/archive?hl=zh-cn 旧版安装包
@chenjiajia9411 #9 比较喜欢升级最新版, 以前也没遇到过很大的问题 |
13
chenjiajia9411 2020-10-16 13:38:48 +08:00
@QBugHunter #11 循序渐进升级也是个办法,先从 3.2 升起来,慢慢一步步过渡到 4.1.
|