@NonNull public static ApiVersion create(@NonNull Object value) { if (value instanceof Integer) { return new DefaultApiVersion((Integer) value, null); } else if (value instanceof String) { return new DefaultApiVersion(1, (String) value); } return new DefaultApiVersion(1, null); }
/** Gets api versions for this variant that might be correlated, such as min and target sdk */ protected ApiVersions getApiVersionsNonTestVariant() { ApiVersion minSdkVersion = mMergedFlavor.getMinSdkVersion(); if (minSdkVersion == null) { // read it from the main manifest minSdkVersion = DefaultApiVersion.create( getManifestAttributeSupplier().getMinSdkVersion()); } ApiVersion targetSdkVersion = mMergedFlavor.getTargetSdkVersion(); if (targetSdkVersion == null) { // read it from the main manifest targetSdkVersion = DefaultApiVersion.create( getManifestAttributeSupplier().getTargetSdkVersion()); } return getCalculatedApiVersions(minSdkVersion, targetSdkVersion); }
if (DefaultApiVersion.isLegacyMultidex(options.getMinSdkVersion())) { builder.addArgs("legacy"); } else { if (!DefaultApiVersion.isPreview(options.getMinSdkVersion())) { builder.addArgs( "-D", "jack.android.min-api-level=" + options.getMinSdkVersion().getApiLevel());
/** Checks if the specified api version is having legacy multidex support. */ public static boolean isLegacyMultidex(@NonNull ApiVersion apiVersion) { if (isPreview(apiVersion)) { //noinspection ConstantConditions - it is preview, so codename is not null return SdkVersionInfo.getApiByPreviewName(apiVersion.getCodename(), true) < 21; } else { return apiVersion.getApiLevel() < 21; } }
/** * Return the minSdkVersion for this variant. * * This uses both the value from the manifest (if present), and the override coming * from the flavor(s) (if present). * @return the minSdkVersion */ @NonNull public ApiVersion getMinSdkVersion() { if (mTestedConfig != null) { return mTestedConfig.getMinSdkVersion(); } ApiVersion minSdkVersion = mMergedFlavor.getMinSdkVersion(); if (minSdkVersion == null) { // read it from the main manifest File manifestLocation = mDefaultSourceProvider.getManifestFile(); minSdkVersion = DefaultApiVersion.create( sManifestParser.getMinSdkVersion(manifestLocation)); } return minSdkVersion; }
if (!DefaultApiVersion.isPreview(options.getMinSdkVersion())) { config.setAndroidMinApiLevel(options.getMinSdkVersion().getApiLevel()); if (DefaultApiVersion.isLegacyMultidex(options.getMinSdkVersion())) { config.setMultiDexKind(MultiDexKind.LEGACY); } else {
@NonNull public static ApiVersion create(@NonNull Object value) { if (value instanceof Integer) { return new DefaultApiVersion((Integer) value, null); } else if (value instanceof String) { return new DefaultApiVersion(1, (String) value); } return new DefaultApiVersion(1, null); }
/** * Return the targetSdkVersion for this variant. * * This uses both the value from the manifest (if present), and the override coming * from the flavor(s) (if present). * @return the targetSdkVersion */ @NonNull public ApiVersion getTargetSdkVersion() { if (mTestedConfig != null) { return mTestedConfig.getTargetSdkVersion(); } ApiVersion targetSdkVersion = mMergedFlavor.getTargetSdkVersion(); if (targetSdkVersion == null) { // read it from the main manifest File manifestLocation = mDefaultSourceProvider.getManifestFile(); targetSdkVersion = DefaultApiVersion.create( sManifestParser.getTargetSdkVersion(manifestLocation)); } return targetSdkVersion; }
public void setMinSdkVersion(int minSdkVersion) { setMinSdkVersion(new DefaultApiVersion(minSdkVersion)); }
@Nullable private static ApiVersion getApiVersion(@Nullable String value) { if (!Strings.isNullOrEmpty(value)) { if (Character.isDigit(value.charAt(0))) { try { int apiLevel = Integer.valueOf(value); return new DefaultApiVersion(apiLevel); } catch (NumberFormatException e) { throw new RuntimeException("'" + value + "' is not a valid API level. ", e); } } return new DefaultApiVersion(value); } return null; }
@NonNull public com.android.builder.model.ProductFlavor setTargetSdkVersion(int targetSdkVersion) { setTargetSdkVersion(new DefaultApiVersion(targetSdkVersion)); return this; }
@NonNull @Override public ApiVersion getMinSdkVersion() { return new DefaultApiVersion(mInstantRunBuildContext.getFeatureLevel()); }
@Override public ApiVersions getApiVersionsNonTestVariant() { ApiVersions apiVersions = super.getApiVersionsNonTestVariant(); if (!project.hasProperty(AndroidProject.PROPERTY_BUILD_API) || !getBuildType().isDebuggable()) { return apiVersions; } // Consider runtime API passed from the IDE only if the app is debuggable. Integer targetAPILevel = Integer.parseInt(project.property(AndroidProject.PROPERTY_BUILD_API).toString()); if (targetAPILevel < 23) { // max 100 DEX files in native multidex for L - see http://b.android.com/233093 return apiVersions; } int minVersion = apiVersions.targetSdkVersion.getApiLevel() > 0 ? Integer.min(apiVersions.targetSdkVersion.getApiLevel(), targetAPILevel) : targetAPILevel; return new ApiVersions(new DefaultApiVersion(minVersion), apiVersions.targetSdkVersion); }