2014-11-01 3 views
1

중 하나를 호출합니다. Android Gradle 플러그인 0.13.0의 그라데이션 2.1 이후로 계속 올라 왔지만 나에게이 경고가 기록되는 이유를 이해할 수 없습니다.variant.getOutputFile()은 더 이상 사용되지 않습니다. variant.getOutputs() 대신

변형 유형을 기반으로하는 APK 이름 변경이 블록 고려해 라인을 호출하는 것을 제안

Before 
WARNING [Project: <myproject>] variant.getOutputFile() is deprecated. Call it on one of variant.getOutputs() instead. 
WARNING [Project: <myproject>] variant.getProcessResources() is deprecated. Call it on one of variant.getOutputs() instead. 
After 

을 보일 것이다 다음 Gradle을 로그를 보면

applicationVariants.all { variant -> 
    variant.outputs.each { output -> 
     def oldFile = output.outputFile 
     if (oldFile != null && oldFile.name.endsWith('.apk')) { 
      def newFile = "Fancy conditionally-formatted file name here" 
      print "\nBefore" 
      output.outputFile = new File(oldFile.parent, newFile) 
      print "\nAfter" 
     } 
    } 
} 

을,이 참조 output.outputFile = new File(oldFile.parent, newFile)이이 경고를 표시합니다. Google은 구체적으로 this page 하단의 예에서이 스타일을 사용합니다. output을 전혀 건드릴 수 없다면 어떻게하면 outputFile을 설정할 수 있습니까?

이 외에도 getProcessResources()이 어떻게 관련되어 있는지 알 수 없습니다.

아이디어가 있으십니까?

+0

메시지는'variant.getOutputFile()'대신'variant.getOutputs(). getOutputFile()'을 사용하는 것이 좋습니다. 필자는 Gradle 버전보다는 Gradle Android 플러그인 버전을 부딪힌 후에 메시지가 나타날 가능성이 더 높다고 생각합니다 (확신 할 수는 없지만). –

+0

안드로이드 gradle 플러그인을 0.13으로 끌어 올린 후 시작되었습니다. 미안해 야합니다. 즉, 귀하의 의견은 실제로 문제를 해결하지는 못합니다 : /. 'variant.getOutputs(). getOutputFile()'이 유효한 호출이 아닙니다. –

+0

좋습니다. 그러면 메시지는 아마도 variant.getOutputFile() 대신에 variant.getOutputs [x] .getOutputFile()를 사용하도록 제안합니다. 위의 발췌 문장에서 완료되었습니다. 아마도 새로운 방법은 예전의 관점에서 구현되어 부당한 경고를 초래할 수 있습니다. 더 깊이 파고 싶으면 소스 코드를 확인하거나 Android 도구 목록에서 질문하십시오. –

답변

0

variant.outputs[x].outputFile에 그것은 Gradle을 플러그인은 여전히 ​​후드 아래되지 않는 전화를 사용하는 것을 밝혀졌다. Android Gradle Plugin 0.14.4부터는 이러한 경고가 더 이상 표시되지 않습니다. 대신

def newFile = "Fancy conditionally-formatted file name here" 
output.outputFile = new File(oldFile.parent, newFile) 

+0

그라데이션 0.14.4로 업그레이드하면 이전 variant.output 호출에 대한 경고 문제가 해결되었습니다. – MikeL

+0

예. 플러그 인 API에서 직접 수행 한 작업이었습니다. –

+0

매우 이상한데, 0.14.4에서 variant.outputs.outputFile 대신에 variant.outputFile을 계속 언급하면 ​​오류가 발생합니다. variant.outputs.outputFile로 변경 한 경우에만 – MikeL

2

변경 variant.outputFile

1

def apk = output.outputFile 
def newName = getNewName() // any fancy formatted file name 
apk.renameTo(new File(apk.parentFile, newName)) 

는 희망이 도움이 다음을 수행합니다.

관련 문제