当前位置: 首页 > news >正文

在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的环境下——小米便签项目的搭建

文章目录0. 我的操作系统和开发环境1. 相关文件下载:2. import project:2.1 用import project导入项目3. make project:3.1 AS中的命令行乱码问题:3.2 依赖库缺失问题:3.3 关于targetSdkVersion3.4 关于Missing URL3.5 关于Manifest merger f…...

FPGA纯verilog实现RIFFA的PCIE通信,提供工程源码和软件驱动

目录1、前言2、RIFFA简介RIFFA概述RIFFA架构RIFFA驱动3、vivado工程详解4、上板调试验证并演示5、福利:工程代码的获取1、前言 PCIE是目前速率很高的外部板卡与CPU通信的方案之一,广泛应用于电脑主板与外部板卡的通讯,PCIE协议极其复杂&…...

Linux网络配置

文章目录一、Linux网络配置原理图二、查看网络IP和网关ping测试主机之间网络连通性三、linux网络环境配置第一种方法(自动获取)第二种方法(指定ip)四、设置主机名和hosts映射设置主机名设置hosts映射五、主机名解析过程分析(Hosts、DNS)Hosts是什么DNS一、Linux网络配置原理图 …...

【Java学习笔记】多线程与线程池

多线程与线程池一、多线程安全与应用1、程序、进程与线程的关系2、创建多线程的三种方式(1)继承Thread类创建线程【不推荐】(2)实现Runnable接口创建线程(3)Callable接口创建线程3、线程的生命周期4、初识线…...

尺取法

尺取法是一种线性的高效率算法。记 (L, R ) 为一个序列内以L为起点的最短合法区间, 如果R随L的增大而增大的,就可以使用尺取法。具体的做法是不断的枚举 L,同时求出R。 因为 R 随 L增大而增大,所以总时间复杂度为 O(n) 指针i、j的两种方向: 反向扫描:i、j方向相反,i从头…...

20.有效的括号

给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。 左括号必须以正确的顺序闭合。 每个右括号都有一个对应的相同类型的左括…...

使用QT C++编写一个带有菜单和工具条的文本编辑器

您好,这是必应。我可以帮您生成一段使用QT C编写一个带有菜单和工具条的文本编辑器的代码,但是请注意,这只是我的创造性的输出,并不代表任何权威或专业的观点。如果您想要了解更多的相关知识,请自行搜索或咨询专家。以…...

文法和语言的基本知识

一、什么形式化的方法用一套带有严格规定的符号体系来描述问题的方法二、什么是非形式化的方法对程序设计语言的描述从语法、语义和语用三个方面因素来考虑所谓语法是对语言结构定义所谓语义是描述了语言的含义所谓语用则是从使用的角度去描述语言三、符号串字母表和符号串字母…...

学习其他人的代码,成为更好的程序员

学习其他人的代码,成为更好的程序员1. 广泛阅读2. 分析代码3. 记笔记4. 实验5. 分享你的发现6. 结论参考如何成为一名更好的Python程序员??? 学习编码是一个持续的过程,需要实践、实验和向他人学习的意愿。提高编码技能的最佳方法之一是学习他人的代…...

新星计划-JAVA学习路线及书籍推荐

CSDN的各位友友们你们好,今天千泽为大家带来的是JAVA学习路线及其经典书籍推荐,接下来让我们一起了解一下JAVA的学习路线吧!如果对您有帮助的话希望能够得到您的支持和关注,我会持续更新的! 目录 1.JAVASE及其书籍推荐 2.初级数据结构与算法及其书籍推荐 3.MySQL及其书籍推荐…...

【大数据】Hive系列之- Hive-DML 数据操作

Hive系列-DML 数据操作数据导入向表中装载数据(Load)语法操作用例通过查询语句向表中插入数据(Insert)创建一张表插入数据基本模式插入(根据单张表查询结果)查询语句中创建表并加载数据(As Sele…...

day2 —— 判断字符串中的字符是否唯一

目录 前言 问题描述 代码解释 前言 若是想要了解基本语法的话,请到(7条消息) C语言从练气期到渡劫期_要一杯卡布奇诺的博客-CSDN博客查看相应的语法细节 强烈安利这篇文章 —— (4条消息) 筑基五层 —— 位运算看这篇就行了_要一杯卡布奇诺的博客-CSDN博客 问题…...

176万,GPT-4发布了,如何查看OpenAI的下载量?

大家好,这里是程序员晚枫。 昨天新一代GPT4发布了,今年GPT不断给大家带来惊喜。 在OpenAI的官网,也公开了GPT的Python调用第三方库:openai。 今天我们就来看看,这个Python智能接口~ 1、代码说明 开发过Python项目…...

蓝蓝算法题(一)

讲在前面:1.本人正在逐步学习C,代码中难免有C和C(向下兼容)混用情况。2.算法题目来自蓝蓝知识星球,没有对应的判决系统,运行到判决系统可以会有部分案例不能通过。 求素数 暴力求解(1 - n试探…...

Python截图自动化工具

1、展示部分源码(写的比较乱,哈哈) 2、功能展示 1)首页 2)按钮截图(用于自动翻页) 3)保存位置按钮(选择图片保存的位置) 4)重复次数,就是要截取多少次 5)定位截屏(截取的内容&#x…...

网络作业2【计算机网络】

网络作业2【计算机网络】前言推荐网络作业2一. 单选题(共3题,19.8分)二. 多选题(共1题,6.6分)三. 填空题(共8题,52.8分)四. 判断题(共3题,20.8分&…...

如何给网页加速,如何加速网页速度?

如何加速网页速度?提高移动网页加载的速度,可以从服务器的优化、网页的容量、请求响应等方面入手,这些方面优化后必然可以提高加载速度。1、服务器硬件软件配置要好,网络、读写响应等要做好优化。2、可以开启gzip压缩技术&#xf…...

linux kernel 5.0 inline hook框架

github:https://github.com/WeiJiLab/kernel-hook-framework 一、项目介绍 Usually we want to hack a kernel function, to insert customized code before or after a certain kernel function been called, or to totally replace a function with new one. How can we…...

【Java版oj】day12二进制插入、查找组成一个偶数最接近的两个素数

目录 一、二进制插入 (1)原题再现 (2)问题分析 (3)完整代码 二、查找组成一个偶数最接近的两个素数 (1)原题再现 (2)问题分析 (3&#xff0…...

【24】Verilog进阶 - 序列检测2

VL35 状态机-非重叠的序列检测 1 思路 状态机嘛,也是比较熟悉的朋友啦, 我就火速写出了STG。如下黑色所示: 2 初版代码 `timescale 1ns/1nsmodule sequence_test1(input wire clk ,input wire rst ,input wire data ,output reg flag ); //*************code**********…...

java_网络服务相关_gateway_nacos_feign区别联系

1. spring-cloud-starter-gateway 作用:作为微服务架构的网关,统一入口,处理所有外部请求。 核心能力: 路由转发(基于路径、服务名等)过滤器(鉴权、限流、日志、Header 处理)支持负…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来,Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言: 通过AI视觉技术,为船厂提供全面的安全监控解决方案,涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面,能够实现对应负责人反馈机制,并最终实现数据的统计报表。提升船厂…...

23-Oracle 23 ai 区块链表(Blockchain Table)

小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

MODBUS TCP转CANopen 技术赋能高效协同作业

在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...

ElasticSearch搜索引擎之倒排索引及其底层算法

文章目录 一、搜索引擎1、什么是搜索引擎?2、搜索引擎的分类3、常用的搜索引擎4、搜索引擎的特点二、倒排索引1、简介2、为什么倒排索引不用B+树1.创建时间长,文件大。2.其次,树深,IO次数可怕。3.索引可能会失效。4.精准度差。三. 倒排索引四、算法1、Term Index的算法2、 …...

Unsafe Fileupload篇补充-木马的详细教程与木马分享(中国蚁剑方式)

在之前的皮卡丘靶场第九期Unsafe Fileupload篇中我们学习了木马的原理并且学了一个简单的木马文件 本期内容是为了更好的为大家解释木马(服务器方面的)的原理,连接,以及各种木马及连接工具的分享 文件木马:https://w…...

基于IDIG-GAN的小样本电机轴承故障诊断

目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) ​梯度归一化(Gradient Normalization)​​ (2) ​判别器梯度间隙正则化(Discriminator Gradient Gap Regularization)​​ (3) ​自注意力机制(Self-Attention)​​ 3. 完整损失函数 二…...

uniapp 字符包含的相关方法

在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...