Android Studio無法執(zhí)行Java類的main方法問題及解決方法
Android Studio升級到哦最新版3.6.1后,新建了個項目,發(fā)現(xiàn)無法執(zhí)行Java類的main方法。試了網(wǎng)上的各種方法,比如切換gradle離線模式、gradle.properties中添加android.enableAapt2=false等,我還嘗試了重新情況Gradle緩存、重新下載gradle等方式,都沒用。
環(huán)境
android studio版本:3.6.1gradle版本:5.6.4gradle插件版本: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 207ms11:41:35 PM: Task execution finished ’TxtUtil.main()’.
解決方案:
方案一:暫時的替代方案
Run 'XXX.main()' with Coverage
方案二:修改.idea/gradle.xml文件
Android Studio使用gradle作為構(gòu)建工具,所以歸根到底還是gradle配置的問題。我先找一個沒問題的項目,再打開新創(chuàng)建的項目,對比著看他們的gradle配置。經(jīng)過對比和嘗試,發(fā)現(xiàn).idea/gradle.xml文件內(nèi)部不同,并且參照老項目進行修改是有效的。
老項目的.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>
經(jīng)過對比發(fā)現(xiàn),新項目的<GradleProjectSettings>標簽下少了<option name='delegatedBuild' value='false' />這行配置,然后給新項目添加這行配置,運行代碼發(fā)現(xiàn)成功了。
根據(jù)配置的字面意思理解,這個設置的意思是不委托gradle進行構(gòu)建。現(xiàn)實效果也是加了這行配置之后就是jvm執(zhí)行Java類的main方法了,而不是gradle當做task來執(zhí)行了。
知識點補充,參考方法
Android Studio 3.0 無法運行Java代碼main() 方法的解決方案
Android Studio 升級到3.0 以后發(fā)現(xiàn) 運行Java 代碼中的main()方法的時候grandle 就會報錯的問題
解決方法 :
打開工程目錄下的下圖標注的文件:

打開文件后 在文件中添加
android.enableAapt2=false
最后同步一下 OK!
總結(jié)
到此這篇關于Android Studio無法執(zhí)行Java main方法的問題的文章就介紹到這了,更多相關android studio無法執(zhí)行java main方法內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持好吧啦網(wǎng)!
相關文章:
1. python中文本字符處理的簡單方法記錄2. Python基于requests庫爬取網(wǎng)站信息3. Python-openpyxl表格讀取寫入的案例詳解4. PHP laravel實現(xiàn)導出PDF功能5. ASP基礎知識Command對象講解6. 使用Blazor框架實現(xiàn)在前端瀏覽器中導入和導出Excel7. JavaScript實現(xiàn)留言板實戰(zhàn)案例8. 資深程序員:給Python軟件開發(fā)測試的25個忠告!9. vscode運行php報錯php?not?found解決辦法10. 如何從Python的cmd中獲得.py文件參數(shù)

網(wǎng)公網(wǎng)安備