Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何用不同的Java代码构建不同风格的APK?_Android_Android Studio_Gradle_Build - Fatal编程技术网

Android 如何用不同的Java代码构建不同风格的APK?

Android 如何用不同的Java代码构建不同风格的APK?,android,android-studio,gradle,build,Android,Android Studio,Gradle,Build,我知道通过在src中创建不同的目录,我们可以用不同的资源构建不同风格的apk,但是现在我想定制一些java代码,这可能吗?或者有其他方法吗 更新 我有一个包含100个*.java文件的项目,我有10个版本,但是每个版本只有一个文件是定制的,每个版本中的文件不是同一个文件,所以我必须将这10个文件放在每个版本中,一旦这10个文件中的一个文件被修改,我将不得不在其他版本中修改同一个文件,项目如下: +应用程序 |-src |-主要 |-爪哇 |-路径 |-A.java(不可能在这里) |-B.ja

我知道通过在src中创建不同的目录,我们可以用不同的资源构建不同风格的apk,但是现在我想定制一些java代码,这可能吗?或者有其他方法吗


更新

我有一个包含100个*.java文件的项目,我有10个版本,但是每个版本只有一个文件是定制的,每个版本中的文件不是同一个文件,所以我必须将这10个文件放在每个版本中,一旦这10个文件中的一个文件被修改,我将不得不在其他版本中修改同一个文件,项目如下:

+应用程序
|-src
|-主要
|-爪哇
|-路径
|-A.java(不可能在这里)
|-B.java(不可能在这里)
|-C.java(不可能在这里)
|-D.java(不可能在这里)
|-E.java(不可能在这里)
|-F.java(不可能在这里)
|-G.java(不可能在这里)
|-Others.java
+res
|-香料
|-爪哇
|-路径
|-A.java(定制)
|-B.java
|-C.java
|-D.java
|-E.java
|-F.java
|-G.java
+res
|-调味品
|-爪哇
|-路径
|-A.java
|-B.java(定制)
|-C.java
|-D.java
|-E.java
|-F.java
|-G.java
+res
|-香精
|-爪哇
|-路径
|-A.java
|-B.java
|-C.java(定制)
|-D.java
|-E.java
|-F.java
|-G.java
+res
|-调味的
|-爪哇
|-路径
|-A.java
|-B.java
|-C.java
|-D.java(定制)
|-E.java
|-F.java
|-G.java
+res
|-调味
|-爪哇
|-路径
|-A.java
|-B.java
|-C.java
|-D.java
|-E.java(定制)
|-F.java
|-G.java
+res
|-调味汁
|-爪哇
|-路径
|-A.java
|-B.java
|-C.java
|-D.java
|-E.java
|-F.java(定制)
|-G.java
+res
|-调味品
|-爪哇
|-路径
|-A.java
|-B.java
|-C.java
|-D.java
|-E.java
|-F.java
|-G.java(定制)

+res

是的,您可以为两种不同的产品风格使用不同的java类,因此您的项目结构如下图所示

这对我来说很有用

+ App
|- src
    |- main
      |- java
          |- path
             |- A.java
             |- B.java
             |- C.java
             |- D.java
             |- E.java
             |- F.java
             |- G.java
             |- Others.java
      + res
   |- flavorA 
      |- java
          |- path
             |- A.java(customized)
      + res
    |- flavorB 
      |- java
          |- path
             |- B.java(customized)
      + res
    |- flavorC 
      |- java
          |- path
             |- C.java(customized)
      + res
    |- flavorD
      |- java
          |- path
             |- D.java(customized)
      + res
    |- flavorE
      |- java
          |- path
             |- E.java(customized)
      + res
    |- flavorF
      |- java
          |- path
             |- F.java(customized)
      + res
    |- flavorG
      |- java
          |- path
             |- G.java(customized)
      + res
您必须如上所述添加文件结构。您必须添加主目录上的所有文件,并且只需要按照flavor添加修改过的文件。如果您将每个文件放在每个版本中,那么在将来更改A.java时,您必须更新所有版本的每个A.java


所以最好在主目录中添加所有文件,只需按照风格添加修改过的文件

您所说的“java代码自定义”是什么意思?checkout:@PankajKumar表示需要自定义一些Customization.java文件。这样,AdminHelperImpl.java就不能放在“main”中,如果我有10种风格,我必须维护10个AdminHelperImpl.java文件是的,如果您的所有java文件彼此不同,那么您必须管理每个文件。举个例子,如果你有5个相同的文件,其他5个不同于你必须在主文件夹中添加Sample.java(相同的文件),其他5个你必须按照你的风格添加。@jason.yu你明白了吗?我明白了,但我的意思是,有更多的风格和更多不同的定制。不同风格的java文件,看我在问题中更新了什么事实上,你答案中的文件结构是我想要的,但它将构建失败,你成功运行了吗?