2017-12-13 13 views
0

Android 빌드를 만들 때 출력 파일 이름을 변경하려고합니다. 여기에 내가 잘 작동이도주. (점)을 그라데이션 문자열

applicationVariants.all { variant -> 
    variant.outputs.all { 
     def buildDate = getDate() 
     outputFileName = "$variant.applicationId-$buildDate-$variant.buildType.name" 
    } 
} 

을 위해 사용하고있는 코드는하지만, 출력 파일은 .apk 확장이 없습니다. 그래서 끝에 .apk를 추가하여 추가하려고 시도했습니다.

outputFileName ="$variant.applicationId-$buildDate-$variant.buildType.name.apk" 

분명히 작동하지 않는 것은 분명합니다.

No such property: apk for class: java.lang.String 

가 그럼 난 일 .apk 전에 \\를 추가하려고했으나 .apk 전에 추가 \ 생성 - 그것은 다음과 같은 오류를 생성합니다. \$과 동일합니다. .apk 앞에 빈 공간을 추가 할 수는 있지만 파일 이름에는 공백이 있습니다.

내 클래스 경로는 다음과 같이 설정 -

classpath 'com.android.tools.build:gradle:3.0.1' 
classpath 'com.google.gms:google-services:3.1.0' 

그래서 내 질문에 내가 점 문자를 탈출 그대로 그냥 인쇄 할 수있는 방법이다.

+1

당신이 당신의 변수를 포장 시도했다 {}? –

+0

@SarthakMittal 답으로 게시 할 수 있습니까? 포장이 효과적입니다. – noob

답변

2

내가 무슨 일이 일어나고 생각은 무엇이며, 그 gradle 변수의 완전한 이름이든 일반 변수 String이든 혼란스러워집니다.

하나 개의 솔루션과 같이, 중괄호 내부에 변수를 포장하는 것 :

"${variant.buildType.name}.apk" 
1

그래서, 내 동료 중 하나가 바로 걸어와 저에게이 방법을 제안했다 (그는 심지어 안드로이드 또는 Java에서 작동하지 않습니다)

outputFileName = "$variant.applicationId-$buildDate-$variant.buildType.name"+".apk" 

그리고 그것은했다. 내 그래서 바보 : -/

다른 방법 : 결국
, 내가 사용하고 다음과 같은 방법 (Sarthak Mittal 덕분에) :

outputFileName = "${variant.applicationId}-${buildDate}-${variant.buildType.name}.apk" 
+1

동료가 30 초 동안 나를 이겼다 :-) – donfuxx

+0

@donfuxx 권자, 여기, 당신의 코멘트에 나의 upvote를 가져라 ;-) – noob

+0

Lol ok thx. 이것이 가장 우아한 방법인지는 잘 모르겠지만 똑같은 일을했을 것입니다 .-) – donfuxx