Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android src/main/java文件夹_Java_Android_Android Studio - Fatal编程技术网

Android src/main/java文件夹

Android src/main/java文件夹,java,android,android-studio,Java,Android,Android Studio,我是android和android studio的新手。我目前正在处理的项目有src/main/Java,所有的Java内容都在这个文件夹下。项目中还有一个具有相同层次结构的模块。我想知道我是否可以改变这种结构?这种结构是安卓工作室强加的吗?是格拉德尔吗? 我想删除“main/java”部分,并将所有代码移到“src”文件夹下。(组织、com等将向上移动两级) 有什么能阻止我这么做吗?这是Gradle Android项目的默认结构 您可以使用sourcesetthingy来更改它(我对Groov

我是android和android studio的新手。我目前正在处理的项目有src/main/Java,所有的Java内容都在这个文件夹下。项目中还有一个具有相同层次结构的模块。我想知道我是否可以改变这种结构?这种结构是安卓工作室强加的吗?是格拉德尔吗? 我想删除“main/java”部分,并将所有代码移到“src”文件夹下。(组织、com等将向上移动两级)
有什么能阻止我这么做吗?

这是Gradle Android项目的默认结构

您可以使用
sourceset
thingy来更改它(我对Groovy类型学不是最新的;):

但是,我鼓励您保持标准结构,因为当您开始使用更高级的功能时,它非常方便,例如


您可以在中找到更多信息。

每当您在Android Studio中启动一个新项目时,它会自动为应用程序创建环境,使其在操作系统上轻松运行main文件夹在src文件夹中,保存android应用程序的所有主要组件。它将所有java文件保存在java中,将资源文件保存在resmain还保留Android清单。因此,简而言之,这是Android操作系统环境中正确且首选的方式。

我还建议保持结构不变。随着Android开发的进展,您开始使用
内置变体
。这意味着您将拥有一组单独的资源文件(例如,活动布局、图形、xml格式的配置文件等)+用于不同设置的源代码,例如,在调试时,或者在CI服务器上作为自动构建/测试的一部分构建和测试应用程序时,或者在为发布正常构建应用程序时

在这种情况下,您将拥有
debug
/java和
debug
/res+
main
/java和
main
/res。
main
debug
是不同构建变量名称的示例,您可以拥有任意数量的构建变量(例如
release
ci
,等等)。这里的
res
目录代表
资源
。此目录未编译,随APK一起提供<代码>java目录包含源代码(并编译)。把这些东西混在一起会导致错误,如果您设法做到这一点并进行编译,它只会使您的项目结构无法扩展


总的来说,在我看来,这种结构是合理的,并且是在考虑项目扩展的情况下制定的。我会保持原样。

这绝对有道理。但我的问题是,我的应用程序是Cordova应用程序,为了能够使用CLI升级Cordova或安装插件,我必须将文件夹移动到src下,并删除主/java文件夹。这就是Cordova CLI项目的结构。这绝对有意义。但我的问题是,我的应用程序是Cordova应用程序,为了能够使用CLI升级Cordova或安装插件,我必须移动src下的文件夹,并删除main/java文件夹。
android {
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
        }
    }
}