2016-09-17 2 views
1

У меня есть значение для строки в String.xmlДоступ к переменной в Java или string.xml от Gradle

<string name="id">4</string> 

и у меня есть класс, который содержит переменную

public static int Id=1; 

Теперь что Мне нужно, чтобы я хотел получить одно из этих значений в градиенте, которое проверит условие и на основе условия, которое оно переименует мое приложение. Ниже приведены является частью Gradle кода

def identifier //here i need to get value from the java or xml 
switch(identifier) 
{ 
    case 1: 
    temp="ApplicationNewName";break; 
    } 
newName=newName.replace("-release",temp); 
output.output.File=new File(output.outputFile.parent,newName); 

Мой вопрос заключается в том, что можно получить доступ к переменным инициализированы в файле Java или строки XML в Gradle файле?

ответ

0

Вы приближаетесь к этой проблеме в обратном направлении, Gradle дает вам возможность устанавливать эти переменные внутри самого скрипта, а затем вы можете получить доступ к этим переменным во всем своем коде Android. Ниже приведен соответствующий ответ на вопрос о том, как вы можете установить переменные конфигурации сборки: https://stackoverflow.com/a/17201265/2168085

Это также звучит так, будто вы пытаетесь создать разные приложения из одной базы кода или создавать варианты этих приложений. Если это так, тогда вы должны действительно изучить build flavors, чтобы решить эту проблему. По существу аромат сборки позволяет создавать различные приложения из одной основной базы кода и применять варианты или новые функции для разных вкусов. Это может быть так же просто, как наличие бесплатной и платной версии приложения или полной белой маркировки кода, где вы можете создавать очень разные приложения из одной и той же базы базового кода. В Android они более широко известный как build variants и документация для разработчиков дает много полезной информации о том, как приступить к работе: https://developer.android.com/studio/build/build-variants.html

-1
applicationVariants.all { variant -> 
     def appName 
     if (project.hasProperty("applicationName")) { 
      appName = "${applicationName}" 
     } else { 
      appName = parent.name 
     } 
     variant.outputs.all { output -> 
      def newApkName 
      newApkName = "${appName}_${variant.versionCode}_${variant.versionName}.apk" 
      outputFileName = new File(newApkName) 
     } 
    } 
+0

Учитывать объяснить, как ваш код отвечает на вопрос. –

Смежные вопросы