Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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构建资源.getIdentifier()始终返回0_Gradle_Android Gradle Plugin - Fatal编程技术网

Android Gradle构建资源.getIdentifier()始终返回0

Android Gradle构建资源.getIdentifier()始终返回0,gradle,android-gradle-plugin,Gradle,Android Gradle Plugin,我开始将我的游戏移植到新的Android Gradle构建系统。 我正在使用Resource.getIdentifier()方法按名称而不是ID加载一些资源。但是,自从切换到Gradle构建以来,此调用始终返回0。这些资产包含在构建的jar中,而dex文件中的R.class包含了我所有的资源和ID,因此我无法解释这一点。这段代码在我改为gradle版本之前就已经运行了。我的build.gradle如下: buildscript { repositories { maven

我开始将我的游戏移植到新的Android Gradle构建系统。 我正在使用Resource.getIdentifier()方法按名称而不是ID加载一些资源。但是,自从切换到Gradle构建以来,此调用始终返回0。这些资产包含在构建的jar中,而dex文件中的R.class包含了我所有的资源和ID,因此我无法解释这一点。这段代码在我改为gradle版本之前就已经运行了。我的build.gradle如下:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.7.+'
    }
}
apply plugin: 'android'

dependencies {
    compile 'com.android.support:support-v4:18.0.+'
}

android {
    compileSdkVersion 18
    buildToolsVersion "19"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 18
    }

    buildTypes {
        debug {
            packageNameSuffix ".debug"
        }
        release {
            runProguard true
            proguardFile getDefaultProguardFile('proguard-android.txt')
        }
    }

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        instrumentTest.setRoot('tests')
    }
}

蒂娅。

D'oh!我的问题是Resources.getIdentifer()接受3个参数,其中一个是包名。我的gradle脚本的调试部分将“.debug”附加到设备上的包名上。解决方案是删除build.gradle中的.debug后缀