2016-09-17 84 views
1

可變string.xml我有在String.xml訪問Java或從搖籃

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

一個字符串值,我有其中包含一個變量

public static int Id=1; 

現在什麼一類我需要的是我想要在Gradle中獲取這兩個值中的任何一個,它將檢查條件並根據條件重命名我的應用程序。下面給出的是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); 

我的問題是,我可以訪問在gradle這個文件Java文件或XML字符串初始化變量?

回答

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

考慮,解釋你的代碼是如何解答的問題。 –