AndroidStudio编译调试aosp11R 的Launcher3

2023-11-03

1.下载aosp并编译

2.下载Launcher3
可以直接使用aosp中的,也可以使用git单独下载

git clone https://android-review.googlesource.com/platform/packages/apps/Launcher3.git

可以使用国内镜像下载,使用中科大源

git clone git://mirrors.ustc.edu.cn/aosp/platform/packages/apps/Launcher3.git

在这里插入图片描述

#查看tag
git tag
#git checkout切换到自己aosp的分支,我的是android-11.0.0_r40
git checkout android-11.0.0_r40

在这里插入图片描述
3.用AndroidStudio打开

修改gralde.properties,将COMPILE_SDK=android-R改为android-30

# Until all the dependencies move to android X
android.useAndroidX = true
android.enableJetifier = true

ANDROID_X_VERSION=1+

GRADLE_CLASS_PATH=com.android.tools.build:gradle:3.5.1

PROTOBUF_CLASS_PATH=com.google.protobuf:protobuf-gradle-plugin:0.8.8
PROTOBUF_DEPENDENCY=com.google.protobuf.nano:protobuf-javanano:3.0.0-alpha-7

BUILD_TOOLS_VERSION=28.0.3
COMPILE_SDK=android-30

No matching configuration of project :IconLoader was found. The consumer was configured to find an API of a component, as well as attribute 'com.android.build.api.attributes.BuildTypeAttr' with value 'debug', attribute 'app' with value 'aosp', attribute 'recents' with value 'withoutQuickstep', attribute 'com.android.build.gradle.internal.dependency.AndroidTypeAttr' with value 'Aar' but:

注释掉

//    implementation project(':IconLoader')
错误: 找不到符号
import com.android.launcher3.icons.DotRenderer;

错误: 找不到符号
import com.android.launcher3.icons.IconNormalizer;
错误: 程序包com.android.launcher3.logger.LauncherAtom不存在
错误: 找不到符号
import com.android.systemui.plugins.PluginListener;
错误: 程序包com.google.protobuf.nano不存在
      com.google.protobuf.nano.MessageNano

将aosp-11-2/out/target/common/obj/JAVA_LIBRARIES/Launcher3CommonDepsLib_intermediates下的classes.jar,重命名为Launcher3CommonDepsLib.jar,导入AndroidStudio
添加依赖

implementation files('libs/Launcher3CommonDepsLib.jar')

类重复

Duplicate class android.support.v4.app.RemoteActionCompatParcelizer found in modules classes.jar (androidx.core:core:1.6.0) and jetified-Launcher3CommonDepsLib.jar (Launcher3CommonDepsLib.jar)
Duplicate class android.support.v4.graphics.drawable.IconCompatParcelizer found in modules classes.jar (androidx.core:core:1.6.0) and jetified-Launcher3CommonDepsLib.jar (Launcher3CommonDepsLib.jar)
Duplicate class android.support.v4.os.ResultReceiver found in modules classes.jar (androidx.core:core:1.6.0) and jetified-Launcher3CommonDepsLib.jar (Launcher3CommonDepsLib.jar)
Duplicate class android.support.v4.os.ResultReceiver$1 found in modules classes.jar (androidx.core:core:1.6.0) and jetified-Launcher3CommonDepsLib.jar (Launcher3CommonDepsLib.jar)

注释掉

//    implementation "androidx.dynamicanimation:dynamicanimation:${ANDROID_X_VERSION}"
//    implementation "androidx.recyclerview:recyclerview:1.1.0"
//    implementation "androidx.preference:preference:${ANDROID_X_VERSION}"

可以运行了
4.编译运行,我这里是运行到api25的模拟器上。

Could not identify launch activity: Default Activity not found
Error while Launching activity
Failed to launch an application on all devices

AndroidManifest.xml的com.android.launcher3.Launcher 添加

<category android:name="android.intent.category.LAUNCHER"/>
 at com.android.launcher3.Utilities.<clinit>(Utilities.java:107)
        at com.android.launcher3.config.FeatureFlags.getDebugFlag(FeatureFlags.java:275)
        at com.android.launcher3.config.FeatureFlags.<clinit>(FeatureFlags.java:67)
        at com.android.launcher3.LauncherProvider.onCreate(LauncherProvider.java:126)

注释掉,日志信息

//        if (FeatureFlags.IS_STUDIO_BUILD) {
//            Log.d(TAG, "Launcher process started");
//        }
at com.android.launcher3.Utilities.<clinit>(Utilities.java:107)
        at com.android.launcher3.config.FeatureFlags.getDebugFlag(FeatureFlags.java:275)
        at com.android.launcher3.config.FeatureFlags.<clinit>(FeatureFlags.java:67)
        at com.android.launcher3.LauncherProvider.onCreate(LauncherProvider.java:126)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1751)
        at android.content.ContentProvider.attachInfo(ContentProvider.java:1726)

修改Utilities.java:107

public static final Person[] EMPTY_PERSON_ARRAY = null;
at com.android.launcher3.qsb.QsbContainerView.getSearchWidgetProviderInfo(QsbContainerView.java:98)
        at com.android.launcher3.qsb.QsbContainerView$QsbFragment.getSearchWidgetProvider(QsbContainerView.java:329)
        at com.android.launcher3.qsb.QsbContainerView$QsbFragment.createQsb(QsbContainerView.java:195)
        at com.android.launcher3.qsb.QsbContainerView$QsbFragment.onCreateView(QsbContainerView.java:189)

修改QsbContainerView.java:98

appWidgetManager.getInstalledProviders()

现在可以运行了
在这里插入图片描述
在这里插入图片描述

可以的代码:https://gitee.com/aaaa_sss/launcher3

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AndroidStudio编译调试aosp11R 的Launcher3 的相关文章

  • 如何自定义菜单项的背景颜色?

    我正在尝试定制Toolbar的弹出菜单 现在我无法设置菜单项的背景颜色 我的 styles xml 如下所示
  • Android短音的正确播放方法?

    我正在创建一个应用程序 屏幕上将有多个图像 这些图像将是按钮 点击时会播放短促的声音 我对此进行了研究 只能找到我当前用来播放声音的方法 这似乎根本没有响应 我希望声音能够快速播放并且能够响应多次快速点击 我不确定这在 Android 中是
  • Cheesesquare:enterAlways 会产生错误的布局

    Adding enterAlways到 Cheesesquare 演示的滚动标志
  • fetchUuidsWithSdp 的奇怪 UUID 逆转

    我有一个在树莓派上运行的 python 蓝牙服务器 使用 PyBluez 我在服务器中使用的uuid是 8f86d132 4ab8 4c15 b8df 0b70cf10ea56 我正在打电话device fetchUuidsWithSdp
  • Android 初学者:Android gridview 中的触摸事件

    我正在使用以下代码来使用 gridview 执行操作 稍作修改http developer android com resources tutorials views hello gridview html http developer a
  • Android WebView里面的ScrollView只滚动scrollview

    在我的应用程序中 我有一个 ScrollView 其中包含一些线性视图 一些文本视图和一个 Webview 然后是其他线性布局等 问题是 WebView 不滚动 Scroll 仅侦听 ScrollView 有什么建议么
  • Android应用程序组件销毁和重新创建的详细信息

    有人可以向我提供一些具体的 值得信赖的 最好是简洁的 信息 内容如下 系统销毁和 如果适用 重新创建组件的顺序 片段 活动 活动的线程 异步任务 计时器 静态数据 类何时卸载 其他类中的线程 异步任务 定时器 主机 TabActivity
  • 自定义首选项中的android首选项水平分隔线?

    我创建了自己的自定义首选项对象来扩展首选项 我创建它们只是因为这些自定义数据类型没有首选项 一切正常 但我的自定义首选项没有相同的外观 因为它们缺少系统首选项对象具有的水平分隔线 我已经查找了创建水平分隔线的代码 但我找不到它是在哪里完成的
  • 如何更改终端的默认目录?

    我想更改 Android Studio v2 2 2 终端的默认目录 当我打开终端时 它基于项目的目录 C 项目路径 我经常需要使用adb shell 所以我必须导航到 SDK 路径 平台工具 才能使用 adb 命令 是否可以更改终端的默认
  • 以编程方式将文本颜色设置为主要 Android 文本视图

    如何设置我的文本颜色TextView to android textColorPrimary以编程方式 我已经尝试了下面的代码 但它将 textColorPrimary 和 textColorPrimary Inverse 的文本颜色始终设
  • java.lang.IllegalStateException:应用程序 PagerAdapter 更改了适配器的内容,而没有调用 PagerAdapter#notifyDataSetChanged android

    我正在尝试使用静态类将值传递给视图 而不是使用意图 因为我必须传递大量数据 有时我会收到此错误 但无法找出主要原因是什么 Error java lang IllegalStateException The application s Pag
  • Android 深度链接至 Instagram 应用

    Instagram 已经发布了 iOS 深层链接的 url 方案 但尚未为 Android 创建文档 有没有办法深入链接到 Android 上的 Instagram 应用程序 以转到 Instagram 应用程序中的特定位置 例如 Inst
  • okhttp 获取失败响应

    我已经在我的 android 客户端中实现了 okhttp 来进行网络调用 当我收到失败响应时 我会收到失败代码以及与该代码相关的文本作为消息 但我没有收到服务器发送给我的自定义失败响应 在我实施的代码中的失败响应中 我收到的消息只是 错误
  • Android 中如何通过彩信发送图片?

    我正在开发多媒体应用程序 我正在通过相机捕获一张图像 并希望将该图像和文本发送到其他号码 但我不知道如何通过彩信发送图像 MMS 只是一个 http post 请求 您应该使用执行请求额外的网络功能 final ConnectivityMa
  • Android 中的处理程序与异步调用

    目前我正在使用处理程序来调用 Web 服务方法以使其在后台运行 问题是它需要更多的时间来给出响应 在性能方面似乎更昂贵 现在我计划使用异步调用 哪一个是最好的 Android 中的处理程序和异步调用有什么区别 请帮我想出一个最好的解决方案
  • 上网本上可以进行Android开发吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我想使用我的上网本进行 Android 开发 但是当我尝试使用 Eclipse 运行 SDK 时 没有加载任何内容 上网本对于 Android 开发来
  • 问题:为什么React Native Video不能全屏播放视频?

    我正在react native 0 57 7 中为android和ios创建一个应用程序并使用反应本机视频 https github com react native community react native video播放上传到的视频
  • CamcorderProfile.videoCodec 返回错误值

    根据docs https developer android com reference android media CamcorderProfile html 您可以使用CamcorderProfile获取设备默认视频编解码格式 然后将其
  • 发布的 Android apk 出现错误“包文件未正确签名”

    我最近将我的应用程序上传到 Android 市场 但是由于错误 下载时它拒绝运行 包文件未正确签名 我首先使用 eclipse 发布了数据包 右键单击导出 创建密钥库然后发布 但它拒绝工作 然后我下载了 keytool 和 jarsigne
  • Android 屏幕方向错误

    我使用的是 Android HTC HERO 2 1 版本 我写的活动

随机推荐

  • go语言-计算哈希值

    通过计算获取哈希值 func b Block SetHash timestamp byte strconv FormatInt b Timestamp 10 headers bytes Join byte b PrevBlockHash b
  • 【数据恢复方法】误删了Word文档如何恢复?

    在日常工作生活中 我们要经常用到Word文档 除了自己编辑内容之外 还可以借助它来传输数据 但是有时会手残不小心删除Word文档 造成数据丢失 这时大抵心情都是慌的 其实 Word文档恢复并不难 通常在还没有清空回收站的情况下 可以在回收站
  • 云原生爱好者周刊:Fluentbit Operator 正式成为 Fluent 子项目

    云原生一周动态要闻 Fluentbit Operator 正式成为 Fluent 子项目 Kubernetes 1 22 发布 Rust Cloud Native 组织成立 CNCF 宣布 Grafana Labs 升级为白金会员 Link
  • Java笔记20——Number & Math 类

    前言 一般当我们需要使用数字的时候 我们通常会使用内置的数据类型 如 byte int long double等等 那么我们Java中有两个和数字有关的类 它们分别是Number Math类 这篇博客给大家介绍它们 Number类 所有的包
  • springboot + mybatis + druid + 多数据源

    一 简介 俩个数据库db1 db2 db1数据库的mapper xml和db2数据库的mapper xml分别放到不同的目录下 通过给不同的目录配置不同的数据源 并分别监控各自的事务 已有新版方案 Mybatis Plus整合多数据源和读写
  • list容器

    1 list容器简介 链表是以中物理存储单元上的非连续 非顺序的存储结构 数据元素的逻辑顺序都是通过链表中的指针连接次序实现的 链表由一系列的结点 链表中每一个元素被称为结点 组成 结点可以在运行时动态生成 每一个结点包括两部分组成 一部分
  • PLSQL Developer连接数据库报错ora-12514解决

    PLSQL Developer连接数据库报错ora 12514解决 就这个错误纠结了好几天了 现在已经完美解决 现在把具体解决思路及方法记录下来 希望能够帮助更多像我这样纠结的人 高手大神们跳过 不多说废话 开始 外链图片转存失败 源站可能
  • 什么是CDN?CDN的原理和作用是什么?

    一 什么是CDN CDN全称Content Delivery Network 即内容分发网络 CDN是Content Delivery Network 内容分发网络 的缩写 是一种利用分布式节点技术 在全球部署服务器 即时地将网站 应用 视
  • 关系数据库

    关系 关系 描述实现事物的一张二维表 外码 关系A中的一组非主属性 其与关系B的主属性对应 则称关系A这组属性为A的外码 关系A为参照关系 关系B为被参照关系 关系完整性 实体完整性 主属性不能取空值 主属性应具有唯一区分性 参照完整性 外
  • 区块链入门系列之共识算法

    区块链入门系列文章 区块链基本概念和名词解释 P2P 共识算法 梅克尔 帕特里夏树 从零开始搭建区块链 这里写自定义目录标题 区块链入门系列文章 前言 POW POS PBFT Raft 其他共识算法 前言 前文已经说过 区块链从本质上来说
  • task1

    Task1 伯努利模型 P X 1 p P X 0 1 p 三要素 1 极大似然估计 模型 伯努利模型 策略 经验风险最小化 极大似然估计 等价于当模型是条件概率分布 损失函数是对数损失函数时的经验风险最小化 算法 极大化似然 P X p
  • MySQL的存储过程

    存储过程是组为了完成特定功能的SQL语句集合 存储过程在使用过程中是将常用或者复杂的工作预先使用SQL语句写好并用一个指定的名称存储起来 这个过程经编译和优化后存储在数据库服务器中 当需要使用该存储过程时 只需要调用它即可 存储过程在执行上
  • linux多节点zookeeper(不限于zookeeper)批量调起(举例,问题排查)

    小脚本 废话不多说直接来 bin bash flag 1 DfsOrAll 2 启动zookeeper 这里 hadoop01 hadoop02 hadoop03 都是节点别名 取代ip地址 可在 etc hosts配置 for i in
  • 翻转的卡片

    前言 第二篇 CodingStartup起码课 的视频练习 这几天都在看他的视频 然后跟着做出效果来 HTML CSS 制作翻牌效果 效果图 要点 使用 position 设置 2 个卡片重叠 正为 正面 反为 背面 transform r
  • pandas统计分析(下)——数据格式化、分组统计

    数据格式化 在数据处理以后需要对数据进行格式化 以增加数据的可读性 设置小数位数 主要使用round函数实现四舍五入 decimals参数用于设置保留小数的位数 round decimals 0 args kwargs decimals 每
  • android对webkit做了哪些封装,lAndroidwebkit简介及开发遇到的一些问题.doc

    lAndroidwebkit简介及开发遇到的一些问题 Android webkit简介 张立鹏 M厂开发五部目录 1 webkit架构2 2 Application3 2 1 WebViewClient里面几个重要方法3 2 2 WebCh
  • sql net message from client

    sql net message from client 2011 05 09 15 18 17 分类 等待事件 标签 字号大中小 订阅 sql net message from client大部分情况下对于数据库来说是空闲等待事件 表示数据
  • [Gradle中文教程系列]-跟我学Gradle-5.3:依赖-管理依赖的版本(传递(transitive)\排除(exclude)\强制(force)\动态版本(+))

    http blog csdn net pkaq article details 53906668
  • 抓包查看http + json 中的 json信息

    一 抓包查看 抓包中过滤http报文 因为json信息在http response中 点击 http 1 1 200 OK 报文 查看这个报文中的 http gt hypertext transfer protocol gt line ba
  • AndroidStudio编译调试aosp11R 的Launcher3

    1 下载aosp并编译 2 下载Launcher3 可以直接使用aosp中的 也可以使用git单独下载 git clone https android review googlesource com platform packages ap