那些年我们学Android的小零碎

2017年11月1日17:33:04更新

一.构建

1.maven 添加多个url

在项目构建的过程中,我们经常会遇到依赖很多库的情况,那么添加多个url的解决办法就在下面啦。

allprojects {
    repositories {
        jcenter()
        maven { url "https://raw.github.com/bmob/bmob-android-sdk/master" }
        maven { url "https://jitpack.io" }
    }
}

二.多媒体

1.从imageview中获得bitmap的方法

经常会遇到从view中获取bitmap的问题,那么这里提供一个简单的方法

Bitmap bm =((BitmapDrawable) ((ImageView) image).getDrawable()).getBitmap(); 

三.Material Design

1.水波纹

水波是个好东西,点击一下会有很灵动的效果,那么在Android5.0上怎么实现呢?其实只需要在空间上添加一个属性

android:background="?android:attr/selectableItemBackground"

四.编译错误

1.导入文件重复

As error

无论是在构建debug版本或者是构建release版本都可能出现的错误,根据字面意思可以知道就是导入的文件重复,那么第一反应就是删一份,那么我们可以看看他们都在哪里,(Double Shift快捷键搜索或者手动打开lib查找)

那些年我们学Android的小零碎_第1张图片
文件查找

那么找到了之后可以尝试删除,如果删除之后又复现,可以尝试build.gradle里查看是否有冲突的导入,删掉依赖即可。

2.瓜皮问题?

描述:IDE突然报错

//这里没来的及截图
 Error:Execution failed for task ':app:processDebugResources'. > No slave process to process jobs, aborting

查询多处无果,就连StackOverflow都没有……失望,重启AS,我擦!好了……真的是无语了。

3.找不到依赖项

描述:刚升级As3.0,新建了一个工程,结果出现一大片错误……不过错误的种类都是一样的,如下

Error:Unable to resolve dependency for ':app@debug/compileClasspath':
  Could not resolve project :library.
Error:Unable to resolve dependency for ':app@release/compileClasspath':
  Could not resolve project :library.

查询国内外网站都说是As3.0新配置的坑,但是又没有一个能解决的方法,包括Android 开发者官网的方法也是看的一脸懵逼,后来也是在StackOverflow上面看到另一个问题的帖子,觉得他的问题跟我的很像,就抱着试试看的态度改了一下,然后就出现楼上那个瓜皮问题,重启全部搞定。

那么改的是一个设置项 File->Setting->Gradle->offline Work勾去掉。
这里主要是本地工作的原因,导致依赖项没有下载或者更新。

同时在As3.0中我们可以使用下面的依赖方法

//官方依赖
 implementation 'com.android.support:appcompat-v7:26.1.0'
//第三方依赖
 api 'com.airbnb.android:lottie:2.2.5'

当然,使用complie应该也是没问题的,具体可以看上面的url。

4.导入项目问题

解决AndroidStudio导入项目在 Building gradle project info 一直卡住

5.Gradle问题(同4)

当我们能进入项目,但是还是不能编译运行,我们可以考虑用于一个默认的gradler,在setting中选择Use local gradle distribution,然后选择Gradle 的目录即可,这样就不会每次根据项目中\gradle\wrapper\gradle-wrapper.properties 文件下载指定版本的gradle。而是使用指定的gradle

五.代码错误

1.ButterKnife错误

那些年我们学Android的小零碎_第2张图片
代码.PNG

如上图代码,使用了官方插件导入bind,看似不会报错,但是实际上会报下面的错误

那些年我们学Android的小零碎_第3张图片
错误

找不到控件,研究源码可以看到,传入的this作为目标,进行布局获取,所以必须把butterknife.bind放在setContentView后面,但是代码确实是这么写的,那么哪里出问题了呢,看报错log下面部分(图未截完整),是该类父类里调用了butterknife.bind这句代码,而父类不存在布局加载,所以导致空布局。

2.Github错误

将项目Share到Github的时候,虽然连得通,但是提示

git error setting certificate verify locations

这个错误是系统证书的问题,系统判断到这个行为会造成不良影响,所以进行了阻止,只要设置跳过SSL证书验证就可以了,打开gitbash,然后输入

git config --global http.sslVerify false

此时导入就没问题了。

六.UI问题

1.桌面小部件测试时候出现正在加载但是就是不出来

遇到这种情况最好检查一下布局中,有没有用到Google官方公布的在小部件中不支持的控件,如editview,cardview等v7控件,如果有只能寻找替代品了,这样认识最快的解决方案了。

你可能感兴趣的:(那些年我们学Android的小零碎)