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

打開(kāi)文件后 在文件中添加
android.enableAapt2=false
最后同步一下 OK!
總結(jié)
到此這篇關(guān)于Android Studio無(wú)法執(zhí)行Java main方法的問(wèn)題的文章就介紹到這了,更多相關(guān)android studio無(wú)法執(zhí)行java main方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
使用PackageManager獲得應(yīng)用信息實(shí)例方法
PackageManager是Android中一個(gè)很有用的類(lèi),能夠獲取已安裝的應(yīng)用(包)的信息,如應(yīng)用名稱(chēng)、圖標(biāo)、權(quán)限,安裝、刪除應(yīng)用(包)等2013-11-11
Android中imageview.ScaleType使用方法詳細(xì)介紹
這篇文章主要介紹了Android中imageview.ScaleType使用方法詳細(xì)介紹的相關(guān)資料,需要的朋友可以參考下2017-06-06
android在異步任務(wù)中關(guān)閉Cursor的代碼方法
android在異步任務(wù)中如何關(guān)閉Cursor?在我們開(kāi)發(fā)應(yīng)用的時(shí)候,很多時(shí)候會(huì)遇到這種問(wèn)題,下面我們就看看代碼如何實(shí)現(xiàn)2013-11-11
Android ListView獲得選項(xiàng)中的值
本篇文章主要介紹Android ListView,在Android開(kāi)發(fā)過(guò)程中經(jīng)常會(huì)用到ListView 組件并有監(jiān)聽(tīng)事件,這里給大家一個(gè)簡(jiǎn)單實(shí)例,來(lái)說(shuō)明如何得到ListView選項(xiàng)中的值2016-07-07
Android中ToggleButton開(kāi)關(guān)狀態(tài)按鈕控件使用方法詳解
這篇文章主要為大家詳細(xì)介紹了Android中ToggleButton開(kāi)關(guān)狀態(tài)按鈕控件的使用方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
android二級(jí)listview列表實(shí)現(xiàn)代碼
今天來(lái)實(shí)現(xiàn)以下大眾點(diǎn)評(píng)客戶(hù)端的橫向listview二級(jí)列表,感興趣的朋友可以研究下2013-01-01
Android短信驗(yàn)證碼自動(dòng)填寫(xiě)實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了Android短信驗(yàn)證碼自動(dòng)填寫(xiě)實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
Android App調(diào)用MediaRecorder實(shí)現(xiàn)錄音功能的實(shí)例
這篇文章主要介紹了Android App調(diào)用MediaRecorder實(shí)現(xiàn)錄音功能的實(shí)例,MediaRecorder非常強(qiáng)大,不僅能夠用來(lái)錄制音頻還可以錄制視頻,需要的朋友可以參考下2016-04-04
Android 使用Toolbar實(shí)現(xiàn)應(yīng)用欄實(shí)例詳解
這篇文章主要為大家介紹了Android 使用Toolbar實(shí)現(xiàn)應(yīng)用欄實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11

