Android组件化错误整理
因为现有代码,太**的乱了,各种耦合,但是奈何高层(非技术)不理解重构的好处,只能自己找时间重构----牢骚
回归正题
问题1、
Execution failed for task ‘:app:preDebugBuild’.
Android dependency ‘com.android.support:appcompat-v7’ has different version for the compile (27.0.0) and runtime (28.0.0) classpath. You should manually set the same version via DependencyResolution
这个问题很明显,是说明多个module中 compileSdkVersion 、minSdkVersion 、targetSdkVersion 等 编译版本,最小版本这些设置不一致,把所有module的这些东西改成一致就行了。
推荐另外一个更便捷的方法 在主工程下 创建一个 config.gradle 类似封装,将一些共用的依赖加到里面:
里面的内容类似:
ext {
android = [
compileSdkVersion: 27,
buildToolsVersion: “27.0.3”,
minSdkVersion : 16,
targetSdkVersion : 27,
versionCode : 13,
versionName : “1.6.6”
]
version = [
androidSupportSdkVersion: “27.1.1”,
retrofitSdkVersion : “2.4.0”,
]
dependencies = [
// ---------- support ----------
“appcompat-v7” : “com.android.support:appcompat-v7:{version[“androidSupportSdkVersion”]}”,
“support-v4” : “com.android.support:support-v4:${version[“androidSupportSdkVersion”]}”
]
问题2、
我遇到的现象是 模块module关联Base-module编译没有问题,在主module依赖模块module的时候报错:
在AS的build中显示下列错误,显示时找不到 V7支持包的资源。挠头~~ 各种百度,Stack Overflow 然并卵。然后就自己尝试
- What went wrong:
Execution failed for task ‘:app:processDebugResources’.
Failed to process resources, see aapt output above for details.
AGPBI: {“kind”:“error”,“text”:“error: resource android:attr/fontVariationSettings not found.”,“sources”:[{“file”:“C:\Users\admin\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.1.1.aar\01e79fc08581f66eed0810144767527c\res\values\values.xml”,“position”:{“startLine”:250,“startColumn”:4,“startOffset”:27058,“endColumn”:68,“endOffset”:27122}}],“original”:"",“tool”:“AAPT”}
AGPBI: {“kind”:“error”,“text”:“error: resource android:attr/ttcIndex not found.”,“sources”:[{“file”:“C:\Users\admin\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.1.1.aar\01e79fc08581f66eed0810144767527c\res\values\values.xml”,“position”:{“startLine”:250,“startColumn”:4,“startOffset”:27058,“endColumn”:68,“endOffset”:27122}}],“original”:"",“tool”:“AAPT”}
最终解决问题的办法是
将gradle的版本修改。 我以前的版本是4.4all,我改成了4.8-all 问题解决。
路径在 project/gradle/wrapper/gradle-wrapper.properties project是自己的项目名
distributionUrl=https://services.gradle.org/distributions/gradle-4.4-all.zip
改成
distributionUrl=https://services.gradle.org/distributions/gradle-4.8-all.zip
有一点如果电脑上没有4.8的版本是需要重新下载的,有时候会超级慢,不过这个文件可以复制别人的。复制到AS的目录下就行
还有一点特别需要注意 gradle 是和gradle plugin 版本匹配的 类似上面 改成gradle-4.8-all 之后 别忙着build。看在主项目下build.gradle 这个文件 如图
对应版本号如下图
这个两个版本号一定要对应,要不然会有改不完的问题,而且莫名其妙。不要问我为什么知道~~!!!!!
-----------------------19/04/06 组件化错误持续更新--------------------