1

フレーバーを使用して、アセットの品質が異なるさまざまな APK を構築しようとしています。問題は、ビルド バリアントを選択した後でも、正しいバージョンだけでなく、すべてのフレーバーを実行しているように見えることです。

だから私のbuild.gradle見た目はこんな感じ。

task initialize{
     doLast {            
         configureObbFile.execute()
         setupScreenSupport.execute()
     }
} 

android {

  compileSdkVersion 28
  defaultConfig {
      println("Flavor: default")
      applicationId com.test.package
      minSdkVersion 19
      targetSdkVersion 28
      versionName "1.0.0"
  }

  flavorDimensions "AssetSize"
  productFlavors {
      tiny {
          println("Flavor: tiny assests")
          pak_name_suffix = "tiny"
          initialize.execute()
      }
      small {
          println("Flavor: small assests")
          pak_name_suffix = "small"
          initialize.execute()
      }
      normal {
          println("Flavor: normal assests")
          pak_name_suffix = "normal"
          initialize.execute()
      }
      tablet {
          println("Flavor: tablet assests")
          pak_name_suffix = "tablet"
          initialize.execute()
      }
      hightable {
          println("Flavor: hightable assests")
          pak_name_suffix = "hightable"
          initialize.execute()
      }
  }
  [...]
}

このようなビルド出力が得られます

Executing tasks: [:app:assembleHightableDebug]

> Task :app:configureObbFile

> Task :app:setupScreenSupport
Screens pak_name_suffix = "tiny"

> Task :app:initialize
> Task :app:initialize
> Task :app:initialize
> Task :app:initialize
> Task :app:initialize

> Configure project :app
Flavor: default
Flavor: tiny assests
Flavor: small assests
Flavor: normal assests
Flavor: tablet assests
Flavor: hightable assests

ご覧のとおり、 app:assembleHightableDebugで始まります、上から下まですべてのフレーバーを実行するだけです。HighTable パーティション (およびデフォルト) のみを実行したいと思います。どうしたの?私は何を間違っていますか?奇妙なことは、configureObbFilesetupScreenSupport「小さな」フレーバーで 1 回しか実行していないように見えることです。

4

1 に答える 1

0

initialize.execute()フレーバーからすべての行を削除する必要があります。これを見て、フレーバーでアプリを適切に拒否する方法を確認してください。

于 2019-03-29T16:16:40.173 に答える