最近发现Android Studio 升级之后,新创建的项目执行Java类的main方法报错。然后查找各方面的资料,试了很多方法比如 在项目根目录 gradle.properties中添加 android.enableAapt2=false、切换gradle离线模式运行等,我还试了一下clean项目、重启android studio 、删除项目重新创建、重新下载gradle等方式,就是死活没用。

android studio环境

android studio版本:4.0
gradle版本:5.6.4

android studio 错误信息

FAILURE: Build failed with an exception.* Where:
Initialization script 'C:\Users\xxx\AppData\Local\Temp\CeShi_main__.gradle' line: 21* What went wrong:
A problem occurred configuring project ':app'.
> Could not create task ':app:CeShi.main()'.> SourceSet with name 'main' not found.* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.* Get more help at https://help.gradle.orgBUILD FAILED in 126ms

解决方案有两种

方案一:治标不治本(临时解决方案)

Run 'xxx.main()' with Coverage


这种方法的使用反正我看着不爽,接下来介绍指标治本的一种方法

方案二:治标治本,用着舒服(修改.idea/gradle.xml文件)

由于android studio 使用的是gradle作为构建工具,所以最终的问题还是gradle配置的问题,这样说以前的老项目就会没有任何问题,这样的话我们就先找到一个老的项目,然后找一个新项目,打开gradle配置查找区别,就能找到问题,通过对比发现.idea/gradle.xml文件内部果然不同,于是参照老的项目去修改,果然发现问题解决。

新项目的.idea/gradle.xml

<?xml version="1.0" encoding="UTF-8"?>
<project version="4"><component name="GradleMigrationSettings" migrationVersion="1" /><component name="GradleSettings"><option name="linkedExternalProjectsSettings"><GradleProjectSettings><option name="testRunner" value="PLATFORM" /><option name="distributionType" value="DEFAULT_WRAPPED" /><option name="externalProjectPath" value="$PROJECT_DIR$" /><option name="modules"><set><option value="$PROJECT_DIR$" /><option value="$PROJECT_DIR$/app" /></set></option><option name="resolveModulePerSourceSet" value="false" /></GradleProjectSettings></option></component>
</project>

老项目的.idea/gradle.xml

<?xml version="1.0" encoding="UTF-8"?>
<project version="4"><component name="GradleMigrationSettings" migrationVersion="1" /><component name="GradleSettings"><option name="linkedExternalProjectsSettings"><GradleProjectSettings><option name="delegatedBuild" value="false" /><option name="testRunner" value="PLATFORM" /><option name="distributionType" value="DEFAULT_WRAPPED" /><option name="externalProjectPath" value="$PROJECT_DIR$" /><option name="modules"><set><option value="$PROJECT_DIR$" /><option value="$PROJECT_DIR$/app" /></set></option><option name="resolveModulePerSourceSet" value="false" /></GradleProjectSettings></option></component>
</project>

经过新老项目的两个文件对比发现,在新项目 <GradleProjectSettings> 标签下少了

<option name="delegatedBuild" value="false" />

这一行配置,然后在新创建的项目添加这一行配置,运行代码成功。

这一行配置的字面意思大概为:不委托gradle进行构建。实际效果加上这一行配置,jvm执行Java类的main方法了,而不是gradle当做task来执行。

注意:
1、虽然完成了这个配置,但是还要删除之前编译的文件才可以运行

在C盘找到你编译的那个文件并且删除掉,这时候在运行main方法就没问题了。
2、还需要在项目根目录的gradle.properties文件里增加android.enableAapt2=false这一行代码才可生效。

通过本人实验得出结论,方案二注意事项二者缺一不可。

本人能力有限,如有错误解释和修改,还望指正后去修改该问题。

Android Studio 高版本无法执行Java main方法的问题相关推荐

  1. 【Android 应用开发】 Ubuntu 安装 Android Studio (旧版本|仅作参考)

    . 果断换Ubuntu了, Ubuntu的截图效果不好, 不能设置阴影 ... 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article ...

  2. android studio 正式版本

    注意:以下 Android Studio 下载链接全是 dl.google.com 开头的官方下载,无需tizi,建议用浏览器直接从官方原始链接下载,不要用迅雷下载.不要用迅雷下载.不要用迅雷下载,重 ...

  3. Android studio 多渠道版本打包方法 flavor dimension

    Android studio 多渠道版本打包方法 flavor dimension 前言 开始 新建项目 修改build.gradle 创建差异化文件 创建图标 修改APP配色 修改APP名字 APP ...

  4. 使用 Maven 执行 java main class(java应用程序)

    今天突然想练练自己脱离IDE的 hard code 水平,于是只是用 maven & UE 做了一些练习,突然发现了一个问题,如何使用maven指令执行 java main 呢?一开始想了一个 ...

  5. Android Studio老版本下载方法(2019.11.29)

    近期学习Android开发,找到的资源都是使用Android Studio老版本进行教学,与新版本在操作上略有不同,学习时可能会有一些步骤跟不上,而且以Anrdoid Studio3.5为基础的问题分 ...

  6. Android studio历史版本下载

    Android studio最新版本下载地址: Download Android Studio and SDK tools  |  Android Developers 有时候我们也想下载早期的前台版 ...

  7. android软件多版本共存,Android Studio 多版本共存

    Android Studio 多版本共存 背景 准备 无安装版 背景 假如你现在需要运行一个gradle:2.x的项目,而你目前的AS的版本是3.x,由于2.x项目升级到3.x改动比较大,但你又不想对 ...

  8. android 置灰不可点击,Android Studio 运行按钮灰色的完美解决方法

    Android Studio 运行按钮灰色的完美解决方法 今天新建项目的时候突然发现编译后运行按钮为灰色. 解决方案:第一步:点击图中的Add Configuration,出来如下界面 第二步:点+号 ...

  9. Java main方法

    public static void main(String[] args) {} 或者 public static void main(String args[]) {} main方法是我们学习Ja ...

  10. Java main方法_解释Java中的main方法,及其作用_一个java文件中可包含多个main方法

    public static void main(String[] args) {} 或者 public static void main(String args[]) {} main方法是我们学习Ja ...

最新文章

  1. mysql教程联合索引_MySQL中的联合索引学习教程
  2. WebService简单开发 apache-cxf-3.1.6环境配置
  3. Spring Cloud构建微服务架构:分布式配置中心(加密解密)
  4. UVa LA 4253 UVa 1421 Archery 枚举,状态削减,oj错误题目 难度: 1
  5. python中time库是什么意思_python中time库的time.time()函数的作用是什么
  6. 无法访问‘/dev/ttyUSB: usb 基站,即显示端口被占用
  7. 获取本地 qt_用QT实现视频/音乐播放组件
  8. nodejs复制服务器文件,nodejs文件夹深层复制功能
  9. 实话实说:中文自然语言处理的N个真实情况
  10. 微型计算机10053拆装,微型计算机的程序设计概要1.ppt
  11. 删除Dataframe前N行或后N行
  12. Dive into BERT:语言模型与知识
  13. couchdb 安装_如何在Ubuntu上安装CouchDB –分步指南
  14. python递归函数分叉树枝_python递归函数绘制分形树的方法
  15. Java多线程编程实战指南(核心篇)读书笔记(三)
  16. 手写简易版spring MVC框架
  17. cmd下迅速打开控制面板、计算机管理、设备管理器
  18. java键盘事件无反应_键盘事件,没反应
  19. linux下,代码阅读工具,understand
  20. python+opencv图像处理之七:直方图均衡化

热门文章

  1. 【windows系统】插入移动硬盘后,有盘符,但提示需要格式化的解决办法
  2. 淘宝自动回复机器人配置手册——利用旺旺分流针对性配置
  3. SAS实验2——假设检验
  4. VCL界面开发工具!DevExpress VCL v19.2.5全新出发
  5. 使用Matlab将多个图形Figure文件合并
  6. 强烈推荐:程序员接私活那点事
  7. 解除红蜘蛛控屏(亲测有用)
  8. 如何关掉visual studio 2012 实时调试器
  9. 我国超级计算机的发展成就,中国最近的科技发展成就
  10. 查询一个表中的两个字段值相同的数据