AndroidStudio 导入老项目报错的多种原因及解决办法
Posted Ang_qq_252390816
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AndroidStudio 导入老项目报错的多种原因及解决办法相关的知识,希望对你有一定的参考价值。
说明
以下导入老项目以androidStudio4.1.1为例
具体错误及原因
1,如果老项目中使用kotlin,升级到最新版本后如果kotlin插件(项目的build.gradle)版本和老项目中的插件版本不一致会导致错误;
错误:A problem occurred evaluating project ':app'.
> Failed to apply plugin [id 'kotlin-android']
> Current version of Gradle Gradle 4.6 is not compatible with Kotlin plugin. Please use Gradle Gradle 4.9 or newer or previous version of Kotlin plugin.
解决办法:1,按照提示修改项目的gradle版本,这个版本是指gradle-wrapper里面的gradle版本;2,修改项目kotlin插件版本为Androidstudio使用的插件(确定版本号:settings—>plugins—>installed—>搜索kotlin然后就可以查看插件版本号了,如果没有下载最安装最新的kotlin插件查看即可)版本一直就好;
2,出现Download maven-metadata.xml一直下载不了,卡死的问题;
解决办法:项目下的build.gradle修改国内Maven镜像仓库,如阿里镜像;如何换国内镜像:https://blog.csdn.net/ezconn/article/details/90794869
3,老项目使用gradle插件和gradle-wrapper版本一般比较老,如果遇到gradle-wrapper声明的gradle版本本地没有,就要动态下载,动态下载一般比较慢或者大概率下载不了;
解决办法:关掉项目,修改gradle-wrapper声明的版本为本地项目使用的版本,gradle插件改为本地项目使用的版本;
4,如果老项目中使用的是V4或者V7或者V13老的support包,建议迁移到Androidx;
迁移过程:https://blog.csdn.net/ezconn/article/details/91817884
5,很多情况下,老项目编译不过是因为很多gradle以前的写法和新版本不同导致;例如:BuildConfig.APPLICATION_ID在AndroidStudio 3.5以上版本废弃掉不再为library或者说module 生成此字段;所以在module要改用BuildConfig.LIBRARY_PACKAGE_NAME代替;
6,A problem occurred configuring project ':baseFrame'.
> Failed to notify project evaluation listener.
> org.gradle.api.tasks.compile.CompileOptions.setBootClasspath(Ljava/lang/String;)V
解决办法:1,gradle-wrapper声明的gradle版本太低了,改高版本即可;2,gradle-wrapper声明的gradle版本和gradle插件版本不匹配导致;
7,butterknife R2 id为0 (Attempt to use @BindView for an already bound ID 0 )
解决办法:升级butterknife插件到10.2.1以上版本即可;
8,kotlin Fragment迁移到Androidx Context报:Type mismatch: inferred type is Context? but Context was expected
解决办法:context换成context!!
9,Attribute meta-data#UMENG_CHANNEL@value at AndroidManifest.xml requires a placeholder substitution but no value for is provided.
解决办法 :https://blog.csdn.net/ezconn/article/details/113085289
10,使用butterknife导致module模块中控件的点击事件无效
原因:可能只添加了
implementation 'com.jakewharton:butterknife:版本号'
而没有添加下面这行 annotationProcessor 'com.jakewharton:butterknife-compiler:版本号'
11,Execution failed for task ':app:processDevDebugResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
> AAPT2 aapt2-4.1.1-6503028-windows Daemon #0: Unexpected error during link, attempting to stop daemon.
This should not happen under normal circumstances, please file an issue if it does.
以上都不可以,关闭项目重启,或者clear项目之后再重启,或者从新装载之后再重启;
以上是关于AndroidStudio 导入老项目报错的多种原因及解决办法的主要内容,如果未能解决你的问题,请参考以下文章
项目中遇到的问题------vue构建好后IDEA导入VUE项目报错的问题
Spring Boot 项目导入 aliyun oss starter 依赖后启动报错的解决方案