Android 용 새로운 Gradle Build 시스템으로 게임을 포팅하기 시작했습니다. Resource.getIdentifier() 메서드를 사용하여 ID 대신 이름으로 일부 리소스를로드합니다. 그러나 Gradle 빌드로 전환 한 후이 호출은 항상 0을 반환합니다. 자산은 빌드 된 jar에 포함되며 dex 파일의 R.class에는 예상대로 모든 리소스와 ID가 포함되어 있으므로 손실이 발생합니다 이것을 설명하기 위해서. 이 코드는 gradle 빌드로 변경하기 전에 작동했습니다. 내 build.gradle은 아래와 같습니다 :Android Gradle Build Resource.getIdentifier()는 항상 0을 반환합니다.
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')
}
}
TIA.