Android Gradle Plugin 编译

  1. 源码下载:
复制代码
$ mkdir studio-main
$ cd studio-main
$ repo init -u https://android.googlesource.com/platform/manifest -b studio-main
$ repo sync -c -j4 -q

这个官方网址让下载 studio-master-dev 分支,这个分支很老旧了,我这里直接下载 studio-main 分支。

  1. 修改 studio-main/tools/base/bazel/toplevel.WORKSPACE 文件,注释掉如下带删除线的部分

......

new_local_repository(

name = "studio_jdk",

build_file = "prebuilts/studio/jdk/BUILD.studio_jdk",

path = "prebuilts/studio/jdk",

)

#-----delete begin-----
#local_repository(

name = "blaze",

path = "tools/vendor/google3/blaze",

repo_mapping = {

"@local_jdk": "@studio_jdk",

},

#)

#vendor_repository(

name = "vendor",

bzl = "@//tools/base/bazel:vendor.bzl",

function = "setup_vendor_repositories",

#)

#load("@vendor//:vendor.bzl", "setup_vendor_repositories")

#setup_vendor_repositories()

#-----delete end-----

local_repository(

name = "io_bazel_rules_kotlin",

path = "tools/external/bazelbuild-rules-kotlin",

)

local_repository(

name = "windows_toolchains",

path = "tools/base/bazel/toolchains/windows",

)

......

  1. 修改 studio-main/tools/buildSrc/src/main/java/com/android/tools/internal/bazel/BazelPrebuiltsBuildService.java,注释掉 args.add("--config=without_vendor");

private void invokeBazel() throws IOException {

File bazel = getParameters()

.getRootDir()

.file(getBazelExe())

.get()

.getAsFile();

List<String> args = new ArrayList<>();

args.add("run");

if (!getParameters().getRootDir().dir("vendor").get().getAsFile().isDirectory()) {

Logging.getLogger(BazelPrebuiltsBuildService.class).lifecycle("Running in AOSP mode");

//args.add("--config=without_vendor");

}

if (getParameters().getUseReleaseVersion().get()) {

args.add("--config=release");

}

//.....

}

  1. 在 tools 目录下执行 ./gradlew :publishAndroidGradleLocal ,详见官方网站
相关推荐
匆忙拥挤repeat3 分钟前
Android Compose 渲染 UI 帧的三个阶段:组合、布局、绘制
android·ui
帅得不敢出门15 分钟前
Android Studio同一个工程根据不同芯片平台加载不同的framework.jar及使用不同的代码
android·android studio·jar
xiangxiongfly91529 分钟前
Android LeakCanary源码分析
android·leakcanary
黄林晴29 分钟前
紧急预警!Android 17 定位权限大改,你的 App 要适配了
android
夏沫琅琊1 小时前
Android API 发送短信技术文档
android·kotlin
周周不一样1 小时前
Android基础笔记1
android·笔记·gitee
取码网1 小时前
影视APP源码 SK影视 安卓+苹果双端APP 反编译详细视频教程+源码
android
musk12121 小时前
android webview 黑屏问题 , 页面加载时间有点长的情况下
android
夏沫琅琊1 小时前
Android 彩信导出技术文档
android·kotlin