Android Studio无法执行Java类的main方法问题及解决方法
Android Studio升级到哦最新版3.6.1后,新建了个项目,发现无法执行Java类的main方法。试了网上的各种方法,比如切换gradle离线模式、gradle.properties中添加android.enableAapt2=false等,我还尝试了重新情况Gradle缓存、重新下载gradle等方式,都没用。
环境
android studio版本:3.6.1 gradle版本:5.6.4 gradle插件版本:3.6.1
错误提示
11:41:35 PM: Executing task ‘TxtUtil.main()’… Executing tasks: [TxtUtil.main()] in project /Users/tinytongtong/Documents/workspace/as/self/BlogDemo FAILURE: Build failed with an exception. * Where: Initialization script ‘/private/var/folders/qw/8_p1t59142d0xntgn799rt1c0000gn/T/TxtUtil_main__.gradle’ line: 20 * What went wrong: A problem occurred configuring project ‘:app’. Could not create task ‘:app:TxtUtil.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.org Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0. Use ‘–warning-mode all’ to show the individual deprecation warnings. See https://docs.gradle.org/5.6.4/userguide/command_line_interface.html#sec:command_line_warnings BUILD FAILED in 207ms 11:41:35 PM: Task execution finished ‘TxtUtil.main()’.
解决方案:
方案一:暂时的替代方案
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="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
新项目的.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
经过对比发现,新项目的<GradleProjectSettings
标签下少了<option name="delegatedBuild" value="false" /
这行配置,然后给新项目添加这行配置,运行代码发现成功了。
根据配置的字面意思理解,这个设置的意思是不委托gradle进行构建。现实效果也是加了这行配置之后就是jvm执行Java类的main方法了,而不是gradle当做task来执行了。
知识点补充,参考方法
Android Studio 3.0 无法运行Java代码main() 方法的解决方案
Android Studio 升级到3.0 以后发现 运行Java 代码中的main()方法的时候grandle 就会报错的问题
解决方法 :
打开工程目录下的下图标注的文件:
打开文件后 在文件中添加
android.enableAapt2=false
最后同步一下 OK!
总结
到此这篇关于Android Studio无法执行Java main方法的问题的文章就介绍到这了,更多相关android studio无法执行java main方法内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!
- How Tomcat Works, A Guide to Developing Your Own Java Servlet Container
- 【开发指南】如何为nexus 5编译固件
- 支持向量机(SVM)入门详解(续)与python实现
- 数据库
- 关于Bom头的一些坑
- 使用shell脚本查看数据库负载情况(81天)
- 无法连接远程mysql数据库解决方案
- 归档问题导致的数据库无法启动 (80天)
- ubuntu上安装php7.0+nginx+mysql
- spring mvc 时间日期转换(@DateTimeFormat 注解)
- php链式操作的实现
- 循序渐进调优ddl的案例 (79天)
- Timer类的schedule()方法
- PHP SPL(PHP 标准库)
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- spring之通过实例工厂方法配置Bean
- 细品redis分布式锁
- 【python-leetcode102-树的宽度遍历】二叉树的层次遍历
- 【python-树的宽度遍历】二叉树的反向层次遍历
- 基于TypeScript封装Axios笔记(二)
- redis高性能数据结构之有序集
- spring之通过静态工厂方法配置Bean
- 【python-leetcode107-树的宽度遍历】二叉树的层次遍历Ⅱ
- spring之通过注解方式配置Bean(一)
- React17新特性:启发式更新算法
- spring之通过FactoryBean配置Bean
- 谱聚类的python实现
- 基于TypeScript封装Axios笔记(三)
- hadoop伪分布式之启动HDFS并运行MR程序(WordCount)
- 细品Reids的HyperLogLog数据结构