2017-04-17 61 views
1

我有一個使用的付費和免費版本相同的代碼庫的應用程序..如何在只包含我的應用的高級版本中包含庫項目而不包含免費版本?

的刪節build.gradle列出了

android { 
.... 
defaultConfig { 
    applicationId "com.myco.myapp" 
    .... 
} 

buildTypes { 
.... 
    release { 
    .... 
    } 
} 

productFlavors { 
    free { 
     applicationIdSuffix ".free" 
     buildConfigField "boolean", "PREMIUM", "false" 
     buildConfigField "boolean", "FREE", "true" 
    } 
    premium { 
     applicationIdSuffix ".premium" 
     buildConfigField "boolean", "PREMIUM", "true" 
     buildConfigField "boolean", "FREE", "false" 
    } 
} 

dependencies { 
    .... 
    compile project(path: ':LVL') 
} 

我打電話的LVL許可的結構的想法onCreate如下: -

 if (BuildConfig.PREMIUM) { 
     String deviceId = Settings.Secure.ANDROID_ID; 
     Log.i(TAG, "Device Id: " + deviceId); 
     mHandler = new Handler(); 
     mLicenseCheckerCallback = new MyLicenseCheckerCallback(); 
     // Construct the LicenseChecker with a Policy. 
     mChecker = new LicenseChecker(
       getApplicationContext(), new ServerManagedPolicy(this, 
       new AESObfuscator(SALT, getPackageName(), deviceId)), 
       BASE64_PUBLIC_KEY // Your public licensing key. 
     ); 
     doCheck(); 
    } 

的LVL庫不叫或在myapp的「免費」版本所需。我的問題是: - ?我應該怎麼構建我的項目/ build.gradle,使LVL庫不包含在免費版本的APK(但包含在高級版

回答

1

嘗試

dependencies { 
    premiumCompile project(':LVL') 
} 

ref到類似的問題

+0

謝謝。這確實回答了我的具體問題。但是,我已經決定實施虛擬「LVL」類或將MainActivity重新安排爲「免費」和「高級」以免從「免費」版本中刪除對LVL的調用,這是不值得的,所以我會在LV中加入LVL因爲開銷相對較小。 – SimonH

相關問題