在Win10以及SDK为33的环境下——小米便签项目的搭建
文章目录
- 0. 我的操作系统和开发环境
- 1. 相关文件下载:
- 2. import project:
- 2.1 用import project导入项目
- 3. make project:
- 3.1 AS中的命令行乱码问题:
- 3.2 依赖库缺失问题:
- 3.3 关于targetSdkVersion
- 3.4 关于Missing URL
- 3.5 关于Manifest merger failed
- 3.6 关于Cannot resolve method 'setLatestEventInfo' in 'Notification'!
- 3.7 关于Duplicate class found!类重复!
- 3.8 关于3 files found with path 'META-INF/DEPENDENCIES'.
- 参考资料
0. 我的操作系统和开发环境
Win10操作系统
Android Studio 2022版
Gradle插件和Gradle版本:
SDK版本:
依赖添加情况:
1. 相关文件下载:
- 项目源代码的下载
- 缺少的依赖库——httpcomponents-client-4.5.14-bin
2. import project:
由于该项目原本是基于Eclipse来进行开发,所以我们需要使用AS的import project来使用gradle将该项目重新构建。
2.1 用import project导入项目
- 用import project导入项目:
- 导入的过程中遇到了这个问题:
主要问题为:这报错信息中的Add google Maven repository and sync project,看来可能Project的build.gradle少了google()* 然后这个问题就解决了~
3. make project:
点击AS中的绿色小锤子make project
3.1 AS中的命令行乱码问题:
- 点击两下shift键引导出搜索框:
- 在
vmoptions
文件下去添加-Dfile.encoding=UTF-8
语句:
- 重启项目后成功可见:
3.2 依赖库缺失问题:
- 首先要去httpcomponents-client-4.5.14-bin
下载依赖文件:
- 将下载后的安装包放到项目的根目录下:
- 通过AS官方的依赖导入功能来导入依赖:
- 载入后在build.gradle(app)文件中:会自动创建好这样的语句:
- 至此导入库失败的问题被解决!
3.3 关于targetSdkVersion
- targetSdkVersion 14 根据AS的提示改成了targetSdkVersion 33.
3.4 关于Missing URL
- 根据AS的提示 (红色小灯泡) 增加了下面的两个语句:
3.5 关于Manifest merger failed
- 这个问题是我找的所有的参考文中都没有遇到的情况,所以最后只能硬啃报错内容来改Bug
最后是在这个博文中找到解决办法:
解决安卓组件不允许进行跨进程调用的问题
原理在这篇博客中有细说:
android:exported=“true” - 简单来说就是Android12的新特性,当我的SDK大于31时,如果要使得我的安卓组件可以进行跨进程调用的话,我就必须加上这句:
android:exported="true"
3.6 关于Cannot resolve method ‘setLatestEventInfo’ in ‘Notification’!
- 这个问题的解决办法在参考文中有详细给出,只需要将大佬们重写的showNotification函数替换原本的函数就可以解决这个问题。
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);}
3.7 关于Duplicate class found!类重复!
这个难题我找了很多资料也没有解决,最后是靠自己的顿悟,想到既然类重复的原因是各种jar之间的冲突,那我只需要保留我最需要的包,把其它有冲突的包都忽略不就行了吗?
顺者网上相关问题的无效版,我了解到大概重要的jar包是哪些:
我把和这3个jar包有冲突的包都exclude了:
3.8 关于3 files found with path ‘META-INF/DEPENDENCIES’.
- 只需要结合日志的提示,添加了这一句配置:
- 至此在该环境下的小米便签的搭建完成~
参考资料
解决项目搭建的问题:
项目搭建参考博客1
项目搭建参考博客2
解决Could not find com.android.tools.build:gradle:(各种版本)
Could not find com.android.tools.build:gradle:(各种版本)
解决项目运行的问题:
解决命令行乱码问题
解决项目依赖包缺失的问题
解决安卓组件不允许进行跨进程调用的问题
android:exported=“true”
android:exported="true"是什么
android:exported 其实并不是Android12的新属性在前面的版本也可以看见它。它是Android中的四大组件 Activity,Service,Provider,Receiver 四大组件中都会有的一个属性。
作用是什么
在Activity中该属性用来标示:当前Activity是否可以被另一个Application的组件启动:true允许被启动;false不允许被启动。
如果它写在service中并且为false则表示则该服务不能够跨进程使用。
所以总体来说它的主要作用是:是否支持其它应用调用当前组件。
以前在我们需要的时候需要自己手动写,但是在Android12中他会默认添加并且默认为true。
把里面提到的所有的安卓的组件中都给加上了android:exported=“true”
解决Cannot resolve method ‘setLatestEventInfo’ in 'Notification’的问题
用重写的函数替代原本的函数。
在Win10以及SDK为33的环境下——小米便签项目的搭建相关推荐
- 小米便签开源项目本地环境搭建
基于Android Studio.和Gradle 的小米便签配置和安装 一.Android Studio的中文社区(官网)下载最新的Android Studio 点击开始传送http://www.an ...
- Win10 LTSB/LTSC 录音机、图片查看器、便签
Win10 LTSB/LTSC 录音机.图片查看器.便签 文章目录 Win10 LTSB/LTSC 录音机.图片查看器.便签 示例 录音机 图片查看器 便签 示例 文件下载地址 链接: https:/ ...
- 一个关于laragon环境下多个laravel项目部署问题
一个关于laragon环境下多个laravel项目部署问题 开发环境说明: 需求说明: 请问应该如何配置? 自己有做过如下尝试: 尝试1:在apache的httpd.conf里添加代码: 尝试2:直接 ...
- cannot set up a python sdk 3.8_anaconda+pycharm环境下创建新的虚拟环境报错Cannot set up a py...
anaconda+pycharm环境下创建新的虚拟环境报错Cannot set up a py anaconda+pycharm环境下创建新的虚拟环境报错Cannot set up a python ...
- win10+python3.6+tensorflow-cpu+keras+Pycharm环境下的tensorflow配置方法
在pytorch成功配置的基础上,也尝试着把tensorflow和keras安装了一下. Win 10 Anaconda3-5.2.0-Windows-x86_64.exe python3.6 ten ...
- nwjs sdk linux x64,Ubuntu环境下的nwjs安装及使用教程
需求:通过nwjs实现一个可以全屏显示,防止用户退出浏览器的演示用app 一.安装Node.js sudo apt-get install nodejs sudo apt-get install np ...
- 基于CMake构建MSVC_CUDA及MinGW编译环境下的的OpenCV项目
前言 第一次搭建OpenCV开发环境的时候各种报错,内心那个烦啊,简直了.当时只能针对某个特定的错误去寻找特定的解决方法,在OpenCV构建过程中出现最多的问题就是各个模块文件的下载问题,本质上这类问 ...
- linux环境下rocketMq双master集群搭建
为什么要使用集群 在生产环境中,经常会有意外的情况发生,对于rocketmq也不例外,单节点情况下,如果出现网络闪断,服务器掉电或宕机之类的,如果服务器不能及时恢复,很可能造成丢消息的情况,因此,集群 ...
- 考试倒计时33天,怎么在电脑便签上设置倒计时
在我们的一生中,会遇到多次比较重要的考试.想要顺利通过考试,必须有充足的时间复习.距离考试越近,复习就越不能放松,考试倒计时在这个时候就显得非常有必要.那么距离考试33天,考试倒计时怎么设置呢? 如果 ...
最新文章
- python web server comparison
- weblogic mime-type
- 【视频】vue指令之v-if、v-bind
- PHP图片间隙用什么代码,如何解决CSS图片下面有间隙的问题
- HDU多校4 - 6808 Go Running(最小点覆盖+网络流优化)
- 递增的整数序列链表的插入
- Oauth2.0认证---授权码模式
- Kafka消费者的使用和原理
- Mybatis存储过程调用
- css学习----边框属性
- 马蜂窝火车票系统服务化改造初探
- python里的平方_python中的平方
- php 分页样式css样式,thinkphp5分页CSS样式代码
- 校招秋招面经整理及复习规划
- 图像检测:图像预处理
- Mysql单表查询和多表查询
- Meth | 小团队git开发模式
- 阿里巴巴-游戏开发面经
- js 常用日期字符串和日期转换
- ISFP型人格的性格缺陷和心理问题分析