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_warningsBUILD 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方法內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!