Android Studio 拒绝运行 main()

Reg*_*sic 23 java android gradle android-studio

复现步骤:

  1. 在 Android Studio 中启动一个新项目(有最新的更新);
  2. 创建一个新类并像往常一样添加 main() ;
  3. 右键单击类以运行 main() 作为测试。
package test;

public class Test {
    public static void main(String[] args) {
    }
}
Run Code Online (Sandbox Code Playgroud)

通常我希望我可以,System.out.printLn("Hello World")但是这次,无论是新项目,我都会收到以下错误:

2:34:23 PM: Executing task 'Test.main()'...

Executing tasks: [Test.main()] in project C:\Users\regan\Desktop\events\MyApplication


FAILURE: Build failed with an exception.

* Where:
Initialization script 'C:\Users\regan\AppData\Local\Temp\Test_main__2.gradle' line: 20

* What went wrong:
A problem occurred configuring project ':app'.
> Could not create task ':app:Test.main()'.
   > SourceSet with name 'test' 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.4.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD FAILED in 0s
2:34:24 PM: Task execution finished 'Test.main()'.
Run Code Online (Sandbox Code Playgroud)

在 Unity 中使用了多年 C# 之后,我对 Java还是相当陌生,并且不知道所有这些东西试图告诉我什么。我用谷歌搜索过,但我发现最接近的是一种隐藏此错误的方法(假设代码仍在编译)。我至少需要这段代码才能编译。

Suk*_*ngh 30

快速修复: 您可以使用Run with Coverage 运行。. 见下图。

J

永久解决方案: 添加<option name="delegatedBuild" value="false" />

gradle.xml在路径下的文件中E:\Project\.idea\gradle.xml。见下图。

在此处输入图片说明

  • 在我升级到最新版本的 kotlin 后,这种情况就开始发生了。 (2认同)
  • 两年后,Intellij 仍然有同样的错误:-( (2认同)

小智 22

在此路径中打开“gradle.xml”文件:

.idea/gradle.xml
Run Code Online (Sandbox Code Playgroud)

</GradleProjectSettings/>之前添加以下行

<option name="delegatedBuild" value="false" />
Run Code Online (Sandbox Code Playgroud)

就是这样,它对我有用。

  • 这是正确的答案!荣誉。但它实际上是做什么的呢? (3认同)

Ros*_*han 19

app 模块是一个 android 库,需要 android 生命周期方法(例如 onCreate() 等)才能成功执行。如果您想执行纯 Java 代码,一种选择是使用 File -> New Module -> Java Library 向项目添加一个 Java 库,并在那里添加 main 方法:

package com.example.lib;

public class MyClass {
    public static void main(String[] args) {
        System.out.println("Hello");
    }
}
Run Code Online (Sandbox Code Playgroud)

这将按您的预期工作。


Fra*_*ank 10

尝试使用“coverage”运行它。我没有任何解释,但它有效!


小智 7

我目前使用的是 Android Studio 版本4.0.1

  1. 创建项目后,您应该转到选项卡 File ==> New ==> New Module... 图一

  2. 在“创建新模块/选择模块类型”上:

  3. 选择Java 或 Kotlin 库 图2 图3

  4. 完成后,转到您创建的 javalib 文件夹/模块。

  5. 在那里创建 Java 文件。 图4

  6. 尝试运行它


小智 4

我也暂时遇到这个问题

我发现当我将 Gradle 更改为离线然后再次重新上线然后更新 Gradle 并确保连接和代理设置正确时,一切开始正常工作