小米便签维护过程记录——可能出现问题解决方案

news2025/4/8 9:37:09

        在对小米便签开源代码进行研究和维护及新功能开发的同时,会遇到很多问题,将以本文进行记录总结。

导入项目

        若不导入直接Open会导致默认为Project,不为Android。

小米标签菜单栏不显示的问题

        先来看NotesListActivity类,这个类创建菜单栏。

        可以发现它继承了Activty类,必须要有 public boolean onCreateOptionsMenu(Menu menu) 这一个函数,但是通过在文件中的搜索,我们发现他并不存在这个方法,这说明,他的菜单栏其实是一开始想靠系统自动生成的。

        但是,靠系统自动生成,这不是Activity类有的功能,而是AppCompatActivity这个类的功能,要把它继承的类改一下:

        还需要改AndroidManifest.xml文件里的主题,用的类不一样了,主题自然也不一样。

        做完上述后可能报错AppCompatActivity找不到,这是我们没把这个类的资源放在gradle里,所以需要在下面的地方引入资源。

问题1:Could not find com.android.tools.build:gradle:7.3.1.

        打开build.gradle(:app)文件在添加两行google(),之所以添加google()是因为jcenter()已经在Android上被废弃了。

        google()指的是Google自家的仓库,比如我们使用的很多第一方库,如RecyclerView, Jetpack Components等等就是从这里拉取的。

        jcenter()指的就是由JFrog提供的JCenter仓库,几乎Android上所有的第三方开源项目都会选择将库发布到这里,比如你在项目中集成的OkHttp、Retrofit、RxJava等等第三方库都是从这里拉取的。

        先在build.gradle(:app)文件中修改classpath参数里面的版本号,再打开gradle-wrapper.properties文件(位于Gradle Scripts文件夹下)将distributionPath改为你想要的版本,注意:如果是gradle-x.x.x-all.zip,应改为bin.zip。

        然后点击try Again,出现下面画面则成功。然后make project(右上角绿色的锤子)。

问题2:Android Gradle plugin requires Java 11 to run.You are currently using Java 1.8 :1

        Android的JDK版本不适配,要用JDK11,按照图片进行设置就行

问题3:Cannot Resolve Symbol HttpEntity,HttpResponse

        小米便签依赖于一个httpcomponents-client组件,以执行网络服务(虽然目前没找到要联网的功能,只找到了调用http库的一些功能函数)。具体下载地址如下:https://mirrors.tuna.tsinghua.edu.cn/apache//httpcomponents/httpclient/binary

        我下载的版本为4.5.13,注意版本的对应,并将该依赖在build.gradle(:app)文件中配置。

问题4:Cannot resolve method 'setLatestEventlnfo' in 'Notification'

        在低于API Level 11版本,也就是Android 2.3.3以下的系统中,setLatestEventInfo()函数是唯一的实现方法;而在高于API Level 11的版本中setLatestEventInfo()函数已经被弃用了,于是我们需要根据现有的Android版本进行相应地重写该函数,直接将整个函数替换下面的内容,可解决问题。

private void showNotification(int tickerId, String content) {
    PendingIntent pendingIntent;
    if (tickerId != R.string.ticker_success) {
        pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext,
                NotesPreferenceActivity.class), 0);

    } else {
        pendingIntent = PendingIntent.getActivity(mContext, 0, new Intent(mContext,
                NotesListActivity.class), 0);
    }


    Notification.Builder builder = new Notification.Builder(mContext)
            .setAutoCancel(true)
            .setContentTitle(mContext.getString(R.string.app_name))
            .setContentText(content)
            .setContentIntent(pendingIntent)
            .setWhen(System.currentTimeMillis())
            .setOngoing(true);
    Notification notification=builder.getNotification();
    mNotifiManager.notify(GTASK_SYNC_NOTIFICATION_ID, notification);
}

问题5:3 files found with path 'META-INF/DEPENDENCIES'.

        这是在安装依赖的时候路径有问题,导致项目无法找到依赖包,解决方法其一可以直接添加绝对路径,但是这会导致当上线打包部署的时候出现错误。

        或者直接不导入依赖,直接在build.gradle(:app)文件中加入该语句,并sync now,可能需要多次点击。

基本成功

        到此,make project运行成功,没有问题了。

虚拟设备:

        选择pixei 2(较为美观)

        退出设置页面,选择刚刚创建的虚拟设备,点击运行

        出现下面界面则成功。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/109657.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Zookeeper 4 Zookeeper JavaAPI 操作 4.5 Curator API 常用操作【修改节点】

Zookeeper 【黑马程序员Zookeeper视频教程,快速入门zookeeper技术】 文章目录Zookeeper4 Zookeeper JavaAPI 操作4.5 Curator API 常用操作4.5.1 修改节点4 Zookeeper JavaAPI 操作 4.5 Curator API 常用操作 4.5.1 修改节点 直接开干 修改之前app1 的数据是本机…

PS1文件执行

PS1文件执行目录概述需求:设计思路实现思路分析1.power shell 管理2.shell 管理执行参考资料和推荐阅读Survive by day and develop by night. talk for import biz , show your perfect code,full busy,skip hardness,make a better result,wait for ch…

软件需求说明书(GB856T——88)基于协同的在线表格forture-sheet

软件需求说明书的编写提示 1引言 1.1产品目的 制造一个功能丰富,配置简单的在线表格组件,开箱即用,产品对位所有办公用户,可以大量用户同时在线进行协同合作办公,可以大大的提高工作效率。 1.2产品范畴 产品为软件…

Javaweb会话跟踪技术(Cookie和Session)

目录 一、会话跟踪技术概述 二、Cookie 1.Cookie基本原理 2.Cookie基本使用 3.Cookie存活时间 4.cookie存储中文 三、Session 1.Session钝化、活化 2.Session基本使用 3.sesion销毁 四Cookie和Sesion区别 一、会话跟踪技术概述 1.会话:用户打开浏览器&…

Java和vue开发的橱柜定制系统家具定制系统

简介 橱柜定制家具定制系统。用户查看家具样本,进行预约下单,后台人员根据用户的要求给出效果图和方案,以及报价,填写上门时间。管理员上门测量和用户确定好需求后上传协议,此时订单变成待开工订单,后台人…

过半985、单岗位2K+简历!速腾聚创如何开展校园招聘?

在半导体、芯片等新兴科技产业,人才短缺和人才培养已经成为全球性问题。 速腾聚创是国内激光雷达领域的龙头企业,在庞大人才实力的助推下,构建起激光雷达硬件、感知软件和芯片三大核心技术闭环,通过领先的技术实力和过硬的产品质量…

VB实现火焰的效果

Option Explicit 锁定指定窗口,禁止它更新。同一时刻间只能有一个窗口处于锁定状态,可用在界面作大弧度布局改变时。 Private Declare Function LockWindowUpdate Lib “user32” (ByVal hwndLock As Long) As Long 在指定的设备场景中设置一个像素的RGB…

机器学习多分类二分类回归问题数据集分享

数据集: https://download.csdn.net/download/qq_38735017/87336921

DocuWare 文档管理软件在医疗保健行业的应用

DocuWare 文档管理软件在医疗保健行业的应用 尽管技术在其他领域取得了很大进步,但许多医院、门诊机构和医疗保健提供商仍然使用过时的系统来管理计费、财务和人力资源等文档密集型流程。借助快速、安全、灵活的 DocuWare 文档管理软件,可以节省您的时间…

基于注解方式实现Spring Security忽略拦截

文章目录1.Spring Security忽略拦截配置2.基于配置文件注入2.1.添加配置2.2.修改Spring Security配置类2.3. 测试3.基于注解的方式过滤接口3.1.添加忽略拦截注解3.2.获取所有使用了IgnoreWebSecurity注解的接口访问路径3.3.测试1.Spring Security忽略拦截配置 关于Spring Secu…

启动项目端口被占用无奈只能重启?程序员的电脑绝不允许重启!

各位小伙伴大家好呀~最近疫情严重很多小伙伴都阳了༼༎ຶᴗ༎ຶ༽虽然放开了,但还是要注意防护呀! 我们在写代码的时候,很多小伙伴都遇到过启动项目但是端口被占用,找了半天也不知道究竟谁占用的,所以就使出了“杀手锏…

@Scope注解的使用方法

Scope注解的使用方法 原文详细参考 1.Scope注解是什么 Scope注解是 Spring IOC 容器中的一个作用域,在 Spring IOC 容器中,他用来配置Bean实例的作用域对象。Scope 具有以下几种作用域: singleton 单实例的(单例)(默认)   ----全局有且…

OPTIONS 漏洞修复

文章目录前言:OPTIONS 漏洞说明Nginx 修复方法环境说明修复测试Tomcat 修复方法环境说明修复测试Tomcat 版本:8.5.3 测试SpringBoot 项目修复方法环境说明修复测试总结前言:OPTIONS 漏洞说明 漏洞名称 : OPTIONS method is enabl…

Docker+Jenkins+Gitee+Maven构建后台jar包后配置SSH传送到服务器并执行指定命令

场景 DockerJenkinsGiteeMaven项目配置jdk、maven、gitee等拉取代码并自动构建以及遇到的那些坑: DockerJenkinsGiteeMaven项目配置jdk、maven、gitee等拉取代码并自动构建以及遇到的那些坑_霸道流氓气质的博客-CSDN博客 在上面将后台jar包构建成功之后&#xff…

【SpringMVC】SpringMVC的入门

1.SpringMVC的入门案例 1.1 项目目录 1.2 配置核心控制器和编码过滤器(web.xml) <?xml version"1.0" encoding"UTF-8"?> <web-app><display-name>Archetype Created Web Application</display-name><!--配置spring mvc的核…

20221223英语学习

今日托福词汇 review n.复习; 回顾, 检讨; 检阅; 评论; 详检, 审核; 回放功能 tentative adj.试验性的; 不确定的; 暂时的; 犹豫的, 踌躇不决的 synonym n.同义词 confine v.限制&#xff1b;监禁 parking n.机动车停放&#xff1b;停车场 sculpture n.雕像&#xff0c;雕…

高通 OpenXR SDK 使用指南(2)

高通 OpenXR SDK 使用指南&#xff08;2&#xff09;1.5 OpenXR 生命周期1.5 OpenXR 生命周期 下图是 OpenXR 框架生命周期的流转过程。 此图中描述了以下过程&#xff1a; 应用程序首先使用 xrEnumerateApiLayerProperties 查询 API 层和扩展属性。 API层可以是以下类型&a…

Zookeeper 4 Zookeeper JavaAPI 操作 4.6 Curator API 常用操作【删除节点】

Zookeeper 【黑马程序员Zookeeper视频教程&#xff0c;快速入门zookeeper技术】 文章目录Zookeeper4 Zookeeper JavaAPI 操作4.6 Curator API 常用操作4.6.1 删除节点4 Zookeeper JavaAPI 操作 4.6 Curator API 常用操作 4.6.1 删除节点 直接开干 /*** 删除节点* 1. 删除单…

【Java基础知识复盘】ArrayList、LinkedList篇——持续更新中

本人知识复盘系列的博客并非全部原创&#xff0c;大部分摘自网络&#xff0c;只是为了记录在自己的博客方便查阅&#xff0c;往后也会陆续在本篇博客更新本人查阅到的新的知识点&#xff0c;望悉知&#xff01; ArrayList 概述 ArrayList 类是一个可以动态修改的数组&#xf…

C++【图】

文章目录一、什么是图二、图的存储结构1.邻接矩阵2.邻接表三、邻接表的代码实现四、邻接矩阵的代码实现五、图的相关属性六、图的遍历1.深度优先遍历2.广度优先遍历练习七、最小生成树1.Kruskal算法&#xff08;克鲁斯卡尔算法&#xff09;2.prim算法八、最短路径1.Dijkstra算法…