Android资源目录分模块(基于gradle)

      使用gradle管理的安卓程序,默认没有分模块,所有的资源文件等都集中在res中,包括图片、图标、布局文件以及其他资源文件等等。现在要完成资源文件的模块化,如layout布局文件。就用layout举个例子。

      先看下原本直接在layout下建立文件夹会怎么样。

        

     在系统的layout下建立一个dir1的文件夹,比如你有一个模块叫dir1,并且有个布局叫layout。这时你的layout文件内容一定有错误产生,如图

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
</LinearLayout>

原因是管理安卓的东西(即gradle)并不知道你这是什么文件。需要让gradle知道你这个文件的存在才行。

解决方案:修改app文件夹下的buile.gradle,注意有两个gradle文件,我们选择app文件夹里面的那个,外面的不用管,一般也不用管它。

现在上我之前刚学Android时,那个小程序的目录结构。

如图,分了几个模块,cookPage,friendsPage,homePage,mePage,当然你也看到了同目录下的layout,这个是总的页面的几个activity存放的目录,它们几个都在一个叫Layouts的文件夹内。

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.example.qq12cvhj.chowhound"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets {
        main {
            res.srcDirs =
                    [
                            'src/main/res/Layouts/cookPage',
                            'src/main/res/Layouts/friendsPage',
                            'src/main/res/Layouts/mePage',
                            'src/main/res/Layouts/homePage',
                            'src/main/res/Layouts',
                            'src/main/res'
                    ]
        }
    }
}

如上代码所示,在这个gradle文件内,添加sourceSets这一项,修改资源目录即可。一定记得,既然是layout文件,在这几个目录里面,一定要添加layout文件夹,其他资源也如此。是什么文件,就添加一个默认的文件夹。建好layout文件夹后,再在里面添加布局文件,即xml文件。这样这个管理工具就能知道你这些文件的存在了,能成功的buile你的APP了。记得修改buile.gradle后几个点右上角的sync now,才能真正同步。如果同步失败,但是内容你确定正确,那就先clean一下project再同步。

欢迎交流,相互学习,共同进步。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值