use of com.android.build.gradle.internal.api.ApplicationVariantImpl in project atlas by alibaba.
the class DependencyManager method resolveDependencies.
/**
* 解析项目的依赖,只对使用官方插件的工程启用,可以兼容solib的功能
*/
public void resolveDependencies() {
// 如果使用官方的插件并且是app,再做一次依赖仲裁
if (PluginTypeUtils.usedGooglePlugin(project)) {
if (androidExtension instanceof AppExtension) {
final AppExtension appExtension = (AppExtension) androidExtension;
appExtension.getApplicationVariants().all(new Closure<Object>(this, this) {
public void doCall(Object applicationVariant) {
VariantContext variantContext = new VariantContext((ApplicationVariantImpl) applicationVariant, project, atlasExtension, appExtension);
resolveDependencyForConfig(variantContext.getVariantDependency(), false);
}
});
} else if (androidExtension instanceof LibraryExtension) {
final LibraryExtension libraryExtension = (LibraryExtension) androidExtension;
libraryExtension.getLibraryVariants().all(new Closure<Object>(this, this) {
public void doCall(Object libraryVariant) {
VariantContext variantContext = new VariantContext((LibraryVariantImpl) libraryVariant, project, atlasExtension, libraryExtension);
resolveDependencyForConfig(variantContext.getVariantDependency(), true);
}
});
}
}
}
use of com.android.build.gradle.internal.api.ApplicationVariantImpl in project atlas by alibaba.
the class AtlasAppTaskManager method repalceAndroidBuilder.
private void repalceAndroidBuilder(ApplicationVariant applicationVariant) {
try {
if (applicationVariant instanceof ApplicationVariantImpl) {
VariantScope variantScope = ((ApplicationVariantImpl) applicationVariant).getVariantData().getScope();
GlobalScope globalScope = variantScope.getGlobalScope();
// ReflectUtils.updateField(globalScope, "androidBuilder", AtlasBuildContext.androidBuilderMap.get(globalScope.getProject()));
// Field f = ProjectOptions.class.getDeclaredField("booleanOptions");
// f.setAccessible(true);
// Map map = (Map) f.get(((ApplicationVariantImpl) applicationVariant).getVariantData().getScope().getGlobalScope().getProjectOptions());
// map.put(BooleanOption.ENABLE_AAPT2, false);
AtlasBuildContext.androidBuilderMap.get(globalScope.getProject()).initAapt(globalScope.getProjectOptions());
}
} catch (Exception e) {
logger.error(e, "write globalScope androidBuilder field failed!");
}
}
use of com.android.build.gradle.internal.api.ApplicationVariantImpl in project atlas by alibaba.
the class AppVariantContextFactory method getAppVariantContext.
public AppVariantContext getAppVariantContext(Project project, ApplicationVariant applicationVariant) {
AppVariantContext appVariantContext = appVariantContextMap.get(applicationVariant);
if (null == appVariantContext) {
appVariantContext = create(project, (ApplicationVariantImpl) applicationVariant);
appVariantContextMap.put(applicationVariant, appVariantContext);
}
return appVariantContext;
}
Aggregations