我有两个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/