前情提示: 2017 年底做的 Android 小项目, 昨天使用 Android Studio 重构的过程中不断出现错误, 总共遇到了三个问题, 在此简要描述.
一, 连接错误
问题描述:
'Error:Connection refused: connect'
解决方案:
1. 打开 Android 项目下的 gradle.properties 文件, 若发现本地代理设置, 则应注释或删除:
- systemProp.http.proxyHost=127.0.0.1
- systemProp.http.proxyPort=1080
- systemProp.https.proxyHost=127.0.0.1
- systemProp.https.proxyPort=1080
2.Android-studio 中 Gradle 'X' project refresh failed,Error:Connection refused 的解决办法
由于此过程较为复杂, 我没有使用这种方法, 有兴趣的同学可以尝试下.
3. 修改工程路径下的 bulid.gradle 文件, 将依赖中的 gradle 版本与当前使用的版本保持一致;
- dependencies {
- classpath 'com.android.tools.build:gradle:3.1.2'
- }
至于查看当前的 gradle 版本, 新建项目打开相应位置代码就 ok 了.
二, 编译错误
问题描述:
'org.gradle.api.resources.ResourceException: Could not get resource'
解决方案:
修改 App 目录下的 bulid.gradle 文件, 将之前的 compile 换为 implementation, 若仍然失败, 则考虑将 implementation 换为 API.
- API 'com.android.support:design:26.1.0'
- API 'de.hdodenhof:circleimageview:2.1.0'
- API 'com.android.support:recyclerview-v7:26.1.0'
- API 'com.android.support:cardview-v7:26.1.0'
- API 'com.github.bumptech.glide:glide:3.7.0'
三, ButterKnife 插件使用问题
ButterKnife 是一种开发框架, 通过注解绑定视图, 省略 findViewById() 的操作, 虽然在项目编译时会略耗时, 但不会影响运行时的性能.
由于之前使用的 ButterKnife 都是基于 5.1.1 版本的, 过时后不能再用, 所以选择改用 8.8.1 版本.
首先, 需要在项目的 build.gradle 文件中的 dependencies 中添加两行代码:
- implementation 'com.jakewharton:butterknife:8.8.1'
- annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
其次, 由于 Knife 不再提供 InjectView, 需要将其替换为 BindView, 并将业务代码改写成此格式
@BindView(R.id.et_username) EditTextetUsername;
并在 OnCreate 方法中改写代码
ButterKnife.inject(this)
为
ButterKnife.bind(this).
以上就是本次的排雷细节, 如果喜欢就请点赞吧!
来源: http://www.jianshu.com/p/d8c3654df5cb