环境

android studio版本:3.6.1
gradle版本:5.6.4
gradle插件版本:3.6.1

错误提示

FAILURE: Build failed with an exception.* Where:Initialization script '/tmp/ReflectTest_main__.gradle' line: 20* What went wrong:A problem occurred configuring project ':app'.> Could not create task ':app:ReflectTest.main()'.   > SourceSet with name 'main' not found.

解决方案:

修改.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>

经过对比发现,新项目的标签下少了这行配置,然后给新项目添加这行配置,运行代码发现成功了。

根据配置的字面意思理解,这个设置的意思是不委托gradle进行构建。现实效果也是加了这行配置之后就是jvm执行Java类的main方法了,而不是gradle当做task来执行了。

更多相关文章

  1. uses-sdk
  2. Android(安卓)Studio 1.5.1最新版下载地址
  3. 如何隐藏Android4.0及以上版本的ActionBar、NotificationBar、St
  4. Android源码下载
  5. 如何隐藏Android4.0及以上版本的ActionBar、NotificationBar、St
  6. Android(安卓)O版本Call对象解析
  7. Android(安卓)不能使用内部资源
  8. Android(安卓)应用的版本兼容 了解一下(理解 minSdkVersion、targ
  9. android 开源项目集锦

随机推荐

  1. Android(安卓)UI 单线程模型的编程原则以
  2. Android SMS 数据库
  3. Android Studio -- Installation and use
  4. Android(安卓)List、Set和Map的介绍和使
  5. 调用第三方库crash异常捕获android
  6. Appium desktop-Could not find a connec
  7. Android中用广播从Service中向Activity发
  8. Android列表实现(1)_数组列表实例介绍
  9. Android studio 出现一直在同步Syncing o
  10. Android联系人--联系人查询2