| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 小米便签维护过程记录——可能出现问题解决方案 -> 正文阅读 |
|
[移动开发]小米便签维护过程记录——可能出现问题解决方案 |
????????在对小米便签开源代码进行研究和维护及新功能开发的同时,会遇到很多问题,将以本文进行记录总结。 导入项目????????若不导入直接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(较为美观) ????????退出设置页面,选择刚刚创建的虚拟设备,点击运行 ????????出现下面界面则成功。 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年2日历 | -2025/2/5 23:01:04- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |