android - list 文件由于在Android Studio中添加common.gradle而丢失

标签 android android-studio gradle

我有两个gradle。一个是项目级别的gradle,另一个是应用程序级别的gradle。在应用gradle中,当我添加此行“apply from: "../../../buildCommon/common.gradle"”时, list 文件会丢失。

应用程序级别gradle的内容在此处给出:

apply plugin: 'com.android.application'
apply from: "../../../buildCommon/applicationCommon.gradle"
apply from: "../../../buildCommon/common.gradle"

android {
    compileSdkVersion 19
    buildToolsVersion "25.0.2"

    defaultConfig {
        applicationId "era.safetynet.payment.apps"
        minSdkVersion 14
        targetSdkVersion 17
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}

dependencies {
    compile project(':ftrSDKHelperAndroid')
    compile 'com.android.support:support-v4:19.1.0'

}
applicationCommon.gradle的内容如下:
// ============================================================================
// Main
// ============================================================================

project.ext.productRootDir = "E://Face Verification Application//Neurotec_Latest"
project.ext.productBinDir = new File(project.productRootDir, "Bin")
project.ext.productBinJavaDir = new File(project.productBinDir, "Java")
project.ext.productBinAndroidDir = new File(project.productBinDir, "Android")
project.ext.productLibAndroidDir = new File(project.productRootDir, "Lib/Android")

// ============================================================================
// Android
// ============================================================================

    apply plugin: 'com.android.application'

    android {
        sourceSets {
            main {
                jni.srcDirs = [] // This prevents the auto generation of Android.mk
                jniLibs.srcDir new File(projectDir, "lib")
            }
        }
    }
common.gradle的内容如下:
project.ext.defaultArchitectures = "arm64-v8a,armeabi-v7a,x86"

group = 'com.neurotec.samples'
version = '9.0.0.0'

// ============================================================================
// Android
// ============================================================================

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        minSdkVersion 15
        targetSdkVersion 19
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_6
    }
    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src/main/java']
            resources.srcDirs = ['src/main/resources']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }
        androidTest.setRoot('src/main/tests')
    }
    packagingOptions {
        exclude "META-INF/LE-832C0.RSA"
        exclude "META-INF/LE-832C0.SF"
    }
    lintOptions {
        abortOnError false
    }
}

gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
        options.compilerArgs << "-Xlint:deprecation"
    }
}

// ============================================================================
// Building
// ============================================================================

// Also delete all project related files from product bin directory.
clean {
    delete fileTree(dir: project.productBinAndroidDir , include: "${archivesBaseName}*.*")
}

// Copy data files images to project build directory so thay can be packed in apk.
if (project.hasProperty("ndfFiles")) {
    task prepareNdfFiles(type: Copy) {
        from "${project.productBinDir}/Data"
        includes = project.ndfFiles
        rename { String fileName ->
            fileName.replace('.ndf', '.ndf.jet')
        }
        into "${android.sourceSets.main.assets.srcDirs[0]}/data";
    }
    tasks.preBuild.dependsOn(prepareNdfFiles)
}

// Copy native libraries to project directory so thay can be packed in apk.
if (project.hasProperty("nativeLibsInclude") || project.hasProperty("nativeLibsExclude")) {
    if (!project.hasProperty("arch")) {
        project.ext.arch = project.defaultArchitectures;
    }
    int counter = 1;
    project.arch.split(',').each {
        String srcDir = "${project.productLibAndroidDir}/${it}"
        String dstDir = "${projectDir}/lib/${it}"
        task "prepareNativeLibs$counter"(type: Copy) {
            from srcDir
            if (project.hasProperty("nativeLibsInclude")) {
                for (String lib : project.nativeLibsInclude) {
                    include lib;
                }
            }
            if (project.hasProperty("nativeLibsExclude")) {
                for (String lib : project.nativeLibsExclude) {
                    exclude lib;
                }
            }
            into dstDir
        }
        tasks.preBuild.dependsOn("prepareNativeLibs$counter");
        counter++;
    }
}

// Copy apk to product bin directory.
task copyApk(type: Copy) {
    from "${project.buildDir}/outputs/apk"
    include "${project.archivesBaseName}-debug.apk"
    rename "${project.archivesBaseName}-debug.apk", "${project.archivesBaseName}.apk"
    into project.productBinAndroidDir
}
tasks.build.dependsOn(copyApk)

task deleteTemporaryFiles(type: Delete) {
    if (project.hasProperty("ndfFiles")) {
        for (String file : project.ndfFiles) {
            delete "${android.sourceSets.main.assets.srcDirs[0]}/data/${file}.jet";
        }
    }
    delete "${projectDir}/lib"
}
tasks.copyApk.dependsOn(deleteTemporaryFiles)

// ============================================================================
// Dependencies
// ============================================================================

dependencies {

    project.ext.modules = [
        "android":          "com.google.android:android:4.1.1.4",
        "acra":             "ch.acra:acra:4.5.0",
    ]

}

repositories {
    mavenLocal()
    mavenCentral()
    flatDir {
        dirs "${project.productBinAndroidDir}/"
    }
}

为什么 list 文件丢失?由于我是android studio的新手,请帮助我。

我也收到此错误。
Error:Cannot read packageName from E:\Android App Source Code\agent banking\SafetyNetPayment\safetyNetPayment\AndroidManifest.xml

最佳答案

我不认为这是 list 文件丢失的原因,它的路径并不仅仅是在common.gradle文件中正确定义的。如果我没记错的话, list 文件在src\main目录中,因此manifest.srcFile应该定义为manifest.srcFile 'src\main\AndroidManifest.xml'

关于android - list 文件由于在Android Studio中添加common.gradle而丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43464786/

相关文章:

android - 应用已关闭但音乐仍在播放

Android Studio 1.1.0 批量 "cannot resolve symbol"错误

Windows 7 VM 上的 Android Studio 虚拟设备不兼容

java - 使用 Gradle 防止第 3 方库位于编译类路径上

android - 位图阈值更快

android - Play 商店 : revert app bundle to use apk

java - 不同 Android 版本上的奇怪行为约束布局动画

android - 将 ProGuard/Dexguard 与多个 Android Studio 模块一起使用

jenkins - 将动态参数传递给Gradle Jenkins插件

java - 如何使用ProcessBuilder将EAR文件部署到wildfly服务器?