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

导入项目

若不导入直接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(较为美观)

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

出现下面界面则成功。

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

  1. 小米便签从0到1维护教程

    小米便签开源社区版从0到1维护教程 1.前置条件-------软件的安装: 开发工具:Android studio 下载Android studio 汉化教程 安装请自行解决 SDK版本以及相关文件 ...

  2. 小米便签开源项目本地环境搭建

    基于Android Studio.和Gradle 的小米便签配置和安装 一.Android Studio的中文社区(官网)下载最新的Android Studio 点击开始传送http://www.an ...

  3. 在Win10以及SDK为33的环境下——小米便签项目的搭建

    文章目录 0. 我的操作系统和开发环境 1. 相关文件下载: 2. import project: 2.1 用import project导入项目 3. make project: 3.1 AS中的命 ...

  4. 在Android Studio下配置小米便签

    在Android Studio下配置小米便签 Android studio2022的下载与安装 在官网下载最新安装包Download Android Studio & App Tools - ...

  5. 记录开发一款安卓便签的过程

    ps:初识安卓是在很久三年前高中第一次拥有了一部天语的ktouch2,然后开始了解root,刷机等等.直到今天进入大学选择了这个专业.因为之前给老师写过一个设备管理的app,发现自己有很多的不足.因此 ...

  6. 微信小程序《难忘便签》开发记录

    一,开发内容 便签 可以增添和删除便签来记录要做的事以及删除已经做完的事. 以后会尽量添加提醒功能以及网络上传的功能 二,时间记录日志 姓名:多文佳 日期 开始时间 结束时间 净时间 活动 2月3日 ...

  7. 安卓手机什么便签app可以记录恋爱天数精确至分秒

    恋爱是一件非常重要的事情,而恋爱天数的记录同样是很重要的,很多的情侣在生活中就因为男方没有记住相应相应的纪念日导致争吵,所以可以记录恋爱天数的app就会非常的重要.那么什么app可以记录恋爱天数呢? ...

  8. 手机上使用赛效团队便签怎么搜索记录的内容?

    支持多人同步在线协作的赛效团队便签,单个团队便签可容纳1000条内容,单条便签支持设定定时提醒和任务指派,同时创建团签内容者还能对团签内容进行修改文本或者指派.设定时间的详情,这些操作都会在团签的历史 ...

  9. 有什么手机便签软件可以记录每天的收入情况

    现代社会压力山大,到处都需要用钱.有的人在工作之余还要做一些兼职来贴补家用,兼职的收入很不固定,也比较不规律,如果想对自己挣了多少钱心中有数,就需要来记录每天的收入了.那么想要记录自己的收入,用什么工 ...

最新文章

  1. 2020年中国AI算力报告发布:超大算法模型挑战之下,公共AI算力基建是关键
  2. 在不锁定表的情况下运行MySQLDump
  3. ROS系统 用Python或C++实现发布者Publisher
  4. as转html5工具,将keras的h5模型转换为tensorflow的pb模型
  5. React中添加class——借助第三方库classnames
  6. 如何在ASP.NET Core中编写自定义日志记录提供程序
  7. 【数据库系统设计】关系数据库简介(关系模型、关系模式、关系完整性、关系代数)
  8. 腾讯 Github 全球贡献前十;三星可折叠手机售价 1.6 万;OpenTitan 正式开源|极客头条...
  9. 获取手机本地的图片或者照相机照像的图片 为头像
  10. jQuery 学习-样式篇(八):jQuery 设置元素的 CSS 样式
  11. [蓝桥杯]基础练习 回文数
  12. OpenCV学习(7) 分水岭算法(1)
  13. 62. WWW 服务器
  14. java socket聊天_java_基于Java Socket实现一个简易在线聊天功能(一),最近做了一个项目,其中有一 - phpStudy...
  15. python爬取阳光问政
  16. PLC可编程控制器实验
  17. linux下修改tomcat默认主页
  18. mysql aix版本查看_AIX 查看aio状态
  19. VS2008+AnkhSVN搭建源代码管理版本库
  20. Mac系统如何运行Windows exe程序?mac打开exe文件方法教程

热门文章

  1. outlook 服务器未响应,出现错误,Outlook 无法设置你的帐户
  2. LoRa信道争抢怎么办?传说中的冲突退避管用吗?
  3. matlab 梯度图像,快速计算matlab中图像的梯度
  4. 评估方法提高深度学习模型泛化能力
  5. Linux 内核、进程调度、进程通信、多线程、协程
  6. 12306登录python_python tcp登录注册_12306注册登录入口
  7. 使用Python获取bing壁纸接口
  8. netty实战-自定义解码器处理半包消息
  9. Dubbo剖析-粘包与半包问题(一)
  10. WebUI——领导驾驶舱