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 导入老项目报错的多种原因及解决办法的主要内容,如果未能解决你的问题,请参考以下文章

eclipse:导入动态web项目出现大面积报错的解决方法

项目中遇到的问题------vue构建好后IDEA导入VUE项目报错的问题

Spring Boot 项目导入 aliyun oss starter 依赖后启动报错的解决方案

Android开发之新建项目报错的问题

Spring Boot 项目导入 aliyun oss starter 依赖后启动报错的解决方案

Spring Boot 项目导入 aliyun oss starter 依赖后启动报错的解决方案