Android Studio 高版本无法执行Java main方法的问题
最近发现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方法的问题相关推荐
- 【Android 应用开发】 Ubuntu 安装 Android Studio (旧版本|仅作参考)
. 果断换Ubuntu了, Ubuntu的截图效果不好, 不能设置阴影 ... 作者 : 万境绝尘 转载请注明出处 : http://blog.csdn.net/shulianghan/article ...
- android studio 正式版本
注意:以下 Android Studio 下载链接全是 dl.google.com 开头的官方下载,无需tizi,建议用浏览器直接从官方原始链接下载,不要用迅雷下载.不要用迅雷下载.不要用迅雷下载,重 ...
- Android studio 多渠道版本打包方法 flavor dimension
Android studio 多渠道版本打包方法 flavor dimension 前言 开始 新建项目 修改build.gradle 创建差异化文件 创建图标 修改APP配色 修改APP名字 APP ...
- 使用 Maven 执行 java main class(java应用程序)
今天突然想练练自己脱离IDE的 hard code 水平,于是只是用 maven & UE 做了一些练习,突然发现了一个问题,如何使用maven指令执行 java main 呢?一开始想了一个 ...
- Android Studio老版本下载方法(2019.11.29)
近期学习Android开发,找到的资源都是使用Android Studio老版本进行教学,与新版本在操作上略有不同,学习时可能会有一些步骤跟不上,而且以Anrdoid Studio3.5为基础的问题分 ...
- Android studio历史版本下载
Android studio最新版本下载地址: Download Android Studio and SDK tools | Android Developers 有时候我们也想下载早期的前台版 ...
- android软件多版本共存,Android Studio 多版本共存
Android Studio 多版本共存 背景 准备 无安装版 背景 假如你现在需要运行一个gradle:2.x的项目,而你目前的AS的版本是3.x,由于2.x项目升级到3.x改动比较大,但你又不想对 ...
- android 置灰不可点击,Android Studio 运行按钮灰色的完美解决方法
Android Studio 运行按钮灰色的完美解决方法 今天新建项目的时候突然发现编译后运行按钮为灰色. 解决方案:第一步:点击图中的Add Configuration,出来如下界面 第二步:点+号 ...
- Java main方法
public static void main(String[] args) {} 或者 public static void main(String args[]) {} main方法是我们学习Ja ...
- Java main方法_解释Java中的main方法,及其作用_一个java文件中可包含多个main方法
public static void main(String[] args) {} 或者 public static void main(String args[]) {} main方法是我们学习Ja ...
最新文章
- mysql教程联合索引_MySQL中的联合索引学习教程
- WebService简单开发 apache-cxf-3.1.6环境配置
- Spring Cloud构建微服务架构:分布式配置中心(加密解密)
- UVa LA 4253 UVa 1421 Archery 枚举,状态削减,oj错误题目 难度: 1
- python中time库是什么意思_python中time库的time.time()函数的作用是什么
- 无法访问‘/dev/ttyUSB: usb 基站,即显示端口被占用
- 获取本地 qt_用QT实现视频/音乐播放组件
- nodejs复制服务器文件,nodejs文件夹深层复制功能
- 实话实说:中文自然语言处理的N个真实情况
- 微型计算机10053拆装,微型计算机的程序设计概要1.ppt
- 删除Dataframe前N行或后N行
- Dive into BERT:语言模型与知识
- couchdb 安装_如何在Ubuntu上安装CouchDB –分步指南
- python递归函数分叉树枝_python递归函数绘制分形树的方法
- Java多线程编程实战指南(核心篇)读书笔记(三)
- 手写简易版spring MVC框架
- cmd下迅速打开控制面板、计算机管理、设备管理器
- java键盘事件无反应_键盘事件,没反应
- linux下,代码阅读工具,understand
- python+opencv图像处理之七:直方图均衡化