Studio 编译的坑

作者: 一汪藏海 | 来源:发表于2017-06-09 08:53 被阅读196次

开发了这么久的Android,发现很多错误并不是逻辑代码的错误,而是因为studio的问题,真让人头大,(⊙o⊙)…,so,今后将陆续整理studio 开发中碰到的问题,都会写在这篇文章上。

1

Error:Execution failed for task ':app:processDebugManifest'.
Manifest merger failed with multiple errors, see logs

原因:添加的依赖和项目产生了冲突

解决方式:
1.在Manifest.xml的application标签下添加:
tools:replace="android:icon, android:theme"(多个属性用,隔开)
并且记住在manifest根标签上加入
xmlns:tools="http://schemas.android.com/tools"
2.在builde.gradle的位置中
minSdkVersion 16 targetSdkVersion 23
这个值和你要依赖的那个包,是不是builde.gradle不一样。
改成一样的就好了。


2

起因:昨天项目一直报错,结果发现竟然有两块错误,最根本的原因是缺少v4包的一个类,导致后边我的回调出现了错误。喏,就是下边这货:
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v4.animatio

error1.png

当我发现这个错误后,我的内心是这样的:

Paste_Image.png

纳尼,我的v4包不是直接自带的吗,怎么会缺少东西啊,打开看了一下。

Paste_Image.png

Excuse me?我的support怎么全部都给升级成26.0.0-alpha1版本的,打开看了一下确实是没有。但这是怎么造成的,我很惊讶啊,后来我觉得肯定是别人搞的鬼,和我没关系。刷了一眼dependencies,我突然觉得是这里添加的依赖有问题。之后找到了那个滚轮的依赖,不清楚是否他们修改了什么地方,然后导致我的APP下载了最新的版本,替换了我的24.2.1,变成了support-26.00-xx,当然原作者已经给了办法:
compile('cn.qqtheme.framework:WheelPicker:1.5.1') { exclude group: 'com.android.support'}
顺便一提,这个exclude group 语法是为了去除依赖中的support


3

retrofit2和rxjava2一起使用时的rxjava.jar版本冲突问题解决:

我记得我刚开始接触retrofit+rxjava差不多在三月份了,哈哈,我有点low,那个时候我下了很多demo,发现基本都是rxjava1的,后来当自己练手的时候我用的是rxjava2,在引入依赖的时候出了一些问题。

error.png
这个一看就知道了是rxjava1和rxjava2共存导致的错误,是因为retrofit使用的是rxjava1,rxjava2使用的是rxjava2。
问题依赖出自
compile 'com.squareup.retrofit2:adapter-rxjava:2.2.0'
你这不是坑人吗,写的是2+的版本,却干着1+的勾当。
当然,这个问题最简单的解决方法就是把rxjava的adapter换成jakewharton大神写的
compile 'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0'
这个是支持rxjava2的哦。
贴一张图,这是很早以前的配置了,现在retrofit已经到2.3了,小伙伴们加油,多多学习新技术,才能多挣小钱钱。 Paste_Image.png

4design包的引入

我在需要design的时候都是这个样子来的

design

他给我们显示的是最新版本26.0.0-alpha1,虽然我在使用过程中还没有发现什么问题,但是既然是草稿,可定不如正式的稳定,要不然等你报错的时候还真不好解决。
解决方式:换成和你的v4版本一样的就好了
compile 'com.android.support:design:25.3.1'
建议大家不要用alpha1版本的,谁用谁知道

2017/6/16

5找不到引用的资源

Error:Execution failed for task ':app:processDebugResources'. com.android.ide.common.process.ProcessException: Failed to execute aapt
error

近日我在引用一个自定义控件的时候,发现老报上边的错误,仔细看了一下,说我找不到那些资源,当我打开attrs的resources的时候,我惊呆了,原来是这个样子的,

resources
不知道你发现没有,他只有attr name,也就是说只有属性名称,没有属性,解决的方式也很简单,给他的每个属性name加上对应的属性就好了,例如<attr name="indicator_color" format="color" />,给他附上值就ok啦啦啦。
2017/6/21

6gradle里的依赖混乱

新建了activity的时候,报了如下错误
Error:(32, 0) Could not get unknown property 'compile' for object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler. <a href="openFile:D:\Everything\Comprehensive\app\build.gradle">Open File</a>

error

于是我点击了 open file,我和我的小伙伴惊呆了

error2

怎么会这个样子,依赖都乱了。
我在网上找了一下,也没有找到为什么,我觉得是我的配置出现了问题,如果你知道原因,希望可以告诉我一下。

我的解决方法是这样的,Ctrl+z,哈哈,这样依赖就恢复成原来的,这样就可以了,如果依赖还是没有变化,那么你就需要手动改一下依赖,把他恢复成原来的样子。


bulingbuling

ps:最近连着下雨了,吼吼

2017/6/22

相关文章

网友评论

本文标题:Studio 编译的坑

本文链接:https://www.haomeiwen.com/subject/lgexqxtx.html