Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.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 Gradle源集资源未复制基本目录_Android_Gradle_Android Gradle Plugin - Fatal编程技术网

Android Gradle源集资源未复制基本目录

Android Gradle源集资源未复制基本目录,android,gradle,android-gradle-plugin,Android,Gradle,Android Gradle Plugin,我目前正在通过gradle自动化android构建,但我的build.gradle文件没有将整个res/或assets/dir复制到我制作的apk中 澄清: 所需的res/和assets/目录的内容被复制到apk中,但实际的res/和assets/目录却找不到。为了使这种自动化与手动过程相匹配,我需要从手动构建过程到自动构建过程的无缝过渡。(生产的apk无差异) 我知道这必须是我处理源代码集和资源的方式,但我找不到任何方向/建议来说明我做错了什么 这是我的build.gradle文件: appl

我目前正在通过gradle自动化android构建,但我的build.gradle文件没有将整个res/或assets/dir复制到我制作的apk中

澄清: 所需的
res/
assets/
目录的内容被复制到apk中,但实际的
res/
assets/
目录却找不到。为了使这种自动化与手动过程相匹配,我需要从手动构建过程到自动构建过程的无缝过渡。(生产的apk无差异)

我知道这必须是我处理源代码集和资源的方式,但我找不到任何方向/建议来说明我做错了什么

这是我的build.gradle文件:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "22"

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src','../res','../assets']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

    }

    defaultConfig {
        applicationId "***************"
        minSdkVersion 19
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            zipAlignEnabled true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            debuggable true
            zipAlignEnabled true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
}
我的目录结构(松散表示):


我认为你应该这样做,但是,我不太确定相对路径

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['res','../res']
        assets.srcDirs = ['assets', '../assets']
    }
}

我不知道你想做什么。我刚刚做了
File>New>Folder>Assets文件夹
,它让我选择了
src/main/Assets
,然后我构建了一个APK,
res/
Assets/
文件夹都在APK文件的顶层。我根本没碰Gradle,这是一个全新的项目,所以我有了默认的Gradle文件…同意,制作一个新项目就像天堂,相比之下,将这个乱七八糟的应用程序从eclipse迁移到android studio,而不做任何逻辑目录结构更改。老问题是有太多的独立开发人员在同一个项目上工作,而没有代码审查……是的,就是这样。谢谢你,@cricket\u 007!!欢迎您可以使用答案旁边的复选标记向网站上的其他人表明这是您问题的解决方案,以此表示感谢
sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src']
        resources.srcDirs = ['src']
        aidl.srcDirs = ['src']
        renderscript.srcDirs = ['src']
        res.srcDirs = ['res','../res']
        assets.srcDirs = ['assets', '../assets']
    }
}