.net开发安卓入门 -记录两个问题处理办法

news2024/11/28 22:44:20

文章目录

  • 问题1、 Could not find 3 Android X assemblies, make sure to install the following NuGet packages
    • 解决办法1:
    • 解决办法2:
  • 问题2、Java.Lang.IllegalArgumentException: 'com.lhd. iml6yu: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.'
    • 解决办法1:
    • 解决办法2:
    • 解决办法3:
  • 安卓各个版本命名以及对应API关系
  • 同系列文章推荐

问题1、 Could not find 3 Android X assemblies, make sure to install the following NuGet packages

在做通知(Notification)的时候,按照微软官方文档,是需要引用 Android.Support.V4 Nuget包,
但是在引用了这个包以后会出现如下错误

严重性	代码	说明	项目	文件	行	禁止显示状态
错误		Could not find 3 Android X assemblies, make sure to install the following NuGet packages:
 - Xamarin.AndroidX.Lifecycle.LiveData
 - Xamarin.AndroidX.Legacy.Support.V4
You can also copy-and-paste the following snippet into your .csproj file:
    <PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.2.0.3" />
    <PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.5" />	 

解决办法1:

按照错误提示引用如下两个nuget包
执行

NuGet\Install-Package Xamarin.AndroidX.Lifecycle.LiveData -Version 2.2.0.3
NuGet\Install-Package Xamarin.AndroidX.Legacy.Support.V4 -Version 1.0.0.5 

或者
包引用

 	<PackageReference Include="Xamarin.AndroidX.Lifecycle.LiveData" Version="2.2.0.3" />
    <PackageReference Include="Xamarin.AndroidX.Legacy.Support.V4" Version="1.0.0.5" />	 

解决办法2:

原本就可以不引用 Android.Support.V4 ,只需要在程序中using AndroidX.Core.App;

问题2、Java.Lang.IllegalArgumentException: ‘com.lhd. iml6yu: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.’

主要是在做通知的时候下面这段代码出现的问题

  var stopServicePendingIntent = PendingIntent.GetActivity(this, 0, stopServiceIntent, PendingIntentFlags.UpdateCurrent);

一个完整的方法代码

 /// <summary>
		/// Builds a PendingIntent that will display the main activity of the app. This is used when the 
		/// user taps on the notification; it will take them to the main activity of the app.
		/// </summary>
		/// <returns>The content intent.</returns>
		PendingIntent BuildIntentToShowMainActivity()
		{
			var notificationIntent = new Intent(this, typeof(MainActivity));
			notificationIntent.SetAction(Constants.ACTION_MAIN_ACTIVITY);
			notificationIntent.SetFlags(ActivityFlags.SingleTop | ActivityFlags.ClearTask);
			notificationIntent.PutExtra(Constants.SERVICE_STARTED_KEY, true);
			//就是这里有问题
			var pendingIntent = PendingIntent.GetActivity(this, 0, notificationIntent, PendingIntentFlags.UpdateCurrent);
			return pendingIntent;
		}

解决办法1:

如果不考虑版本问题,固定在API31+以上使用,可以修改代码如下
注意最后一个枚举类型

//注意最后一个枚举类型
var stopServicePendingIntent = PendingIntent.GetActivity(this, 0, stopServiceIntent, PendingIntentFlags.Immutable);

解决办法2:

将项目的targetSdkVersion由31改为30

解决办法3:

根据不同系统版本创建带有不同flag的PendingIntent,具体代码实现如下:

PendingIntent pendingIntent;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.S) {
    pendingIntent = PendingIntent.GetActivity(this, 0, stopServiceIntent, PendingIntentFlags.Immutable);
} else {
    pendingIntent = PendingIntent.GetActivity(this, 0, notificationIntent, PendingIntentFlags.UpdateCurrent);
}

安卓各个版本命名以及对应API关系

在这里插入图片描述

同系列文章推荐

.net开发安卓入门 - 环境安装
.net开发安卓入门 - Hello world!
.net开发安卓入门 - 基本交互(Button,输入EditText,TextView,Toast)
.net开发安卓入门 - 布局与样式
.net开发安卓入门 - Activity
.net开发安卓入门 - Notification(通知)

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

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

相关文章

计算机毕业设计 基于HTML+CSS+JavaScript响应式网站健身7页,适配手机端,响应式页面,页面精美,使用bootstrap 框架

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

PEMN~

搬来个来自美国东大的哦~~ 为了处理更复杂的任务&#xff0c;近年来神经网络的规模也在不断变大&#xff0c;如何高效的储存和传输神经网络变得十分重要。另一方面&#xff0c;随着彩票假说&#xff08;Lottery Ticket Hypothesis (LTH)&#xff09;的提出&#xff0c;随机稀疏…

基于java+springboot+mybatis+vue+mysql的私人健身与教练预约管理系统

项目介绍 21世纪&#xff0c;我国就已普及互联网信息&#xff0c;互联网对人们生活中带来了无限的便利。像大部分机构都在开发自己的管理系统&#xff0c;由传统的管理模式向互联网发展&#xff0c;如今开发自己的系统是时代发展的必然产物。那么开发私人健身与教练预约管理系…

[附源码]Python计算机毕业设计电影票购票系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等…

微服务框架 SpringCloud微服务架构 分布式事务 38 动手实践 38.9 Saga 模式

微服务框架 【SpringCloudRabbitMQDockerRedis搜索分布式&#xff0c;系统详解springcloud微服务技术栈课程|黑马程序员Java微服务】 分布式事务 文章目录微服务框架分布式事务38 动手实践38.9 Saga 模式38.9.1 Saga 模式38.9.2 四种模式对比38 动手实践 38.9 Saga 模式 38…

删除压缩包密码

压缩包设置了加密&#xff0c;需要输入压缩包密码才能够顺利解压文件出来。但是有些时候&#xff0c;一些文件只需要一段时间内要加密&#xff0c;之后文件不需要加密了&#xff0c;每次解压文件的时候还是需要输入压缩包密码才行&#xff0c;就很麻烦&#xff0c;那么RAR压缩包…

快速搭建 单体SpringCloudAlibaba 微服务

本章主要讲述快速构建一套springcloud alibaba微服务&#xff0c;一切从简 nacos官网 https://nacos.io/zh-cn/docs/quick-start.html 1.下载启动nacos注册中心 Git地址 https://github.com/alibaba/nacos/releases 1.1 nacos自带默认数据库 derby&#xff0c;集群情况下持久…

JVM(内存划分+类加载+GC)

目录 &#x1f432; 1. JVM 内存划分 &#x1f432; 2. JVM 类加载 &#x1f984; 2.1 类型加载是干啥的 &#x1f984; 2.2 类加载的简略流程 &#x1f984; 2.3 什么时候会进行类加载 &#x1f984; 2.4 双亲委派模型 &#x1f432; 3. GC 垃圾回收机制 &…

图像的OTSU阈值化、双阈值化、半阈值化的原理及OpenCV代码实现

本文的基础是OpenCV的函数threshold()&#xff0c;关于函数threshold()的详细介绍&#xff0c;大家可以参考下面这篇博文&#xff1a; https://www.hhai.cc/thread-162-1-1.html 一、图像的OTSU阈值化 在阈值化处理中&#xff0c;OTSU是一种常用的算法&#xff0c;中文译为大津…

JavaEE-多线程初阶2

✏️作者&#xff1a;银河罐头 &#x1f4cb;系列专栏&#xff1a;JavaEE &#x1f332;“种一棵树最好的时间是十年前&#xff0c;其次是现在” 目录Thread类及常见方法获取当前线程引用休眠当前线程线程的状态线程的所有状态线程状态多线程的意义多线程带来的的风险-线程安全…

Python课程设计题目

文章目录1.基于Python的XX管理系统。2.基于Python的XX工具开发1.基于Python的XX管理系统。 实例要求&#xff1a;采用面向对象或是字典保存实例的属性信息。 功能要求&#xff1a;提供增加&#xff0c;删除&#xff0c;修改&#xff0c;单个查询&#xff0c;查询所有&#xff…

NFC标签 “ PN29_S

产品参数产品参数 产品型号 PN29_S 产品尺寸 (mm) 9546.45.4 显示技术 E ink 显示区域 (mm) 29(H)66.9(V) 分辨率 (像素) 296128 像素尺寸(mm) 0.2270.226 显示颜色 黑/白 视觉角度 180 工作温度 0℃ - 50℃ 电池 无需电池 工作频率 13.56 MHZ NF…

数据结构单循环链表

循环链表的特点是无须增加存储量&#xff0c;仅对表的链接方式稍作改变&#xff0c;即可使得表处理更加方便灵活。 【例】在链表上实现将两个线性表(a1&#xff0c;a2&#xff0c;…&#xff0c;an)和(b1&#xff0c;b2&#xff0c;…&#xff0c;bm)连接成一个线性表(a1&…

智云通CRM:那些令你无法控制的销售局面(一)

销售的复杂性并不仅仅是指购买者得人数很多。复杂销售的定义在最近的十年里有了突破性的变化和发展&#xff0c;这种变化和发展中出现了很多挑战&#xff0c;不仅业务员&#xff0c;就连业务经理都难以应对。因此&#xff0c;唯有制定简化处理程序的计划才能妥善应对这一局面。…

利用if语句求解成绩等级问题

1 问题 成绩进行划分等级&#xff0c;人工划分容易出错&#xff0c;且数量庞大。 2 方法 public class Text06 { public static void main(String[] args) { int score100; System.out.println("score"); // 1.成绩大于等于85 if (sc…

前端_Vue_4.类与样式绑定、条件渲染

文章目录一、Class与Style绑定1.1. 绑定HTML class1.1.1. 绑定对象1.1.2. 绑定数组1.1.3. 在组件上使用1.2. 绑定内联样式1.2.1. 绑定对象1.2.2. 绑定数组1.2.3. 自动前缀1.2.4. 样式多值二、条件渲染2.1. v-if2.2. v-else2.3. v-else-if2.4. \<template\> 上的 v-if2.5.…

电脑开不了机系统应该如何恢复正常

电脑不仅携带方便&#xff0c;而且功能也十分强大&#xff0c;不过电脑使用时会时不时出现问题&#xff0c;如果电脑开不了机怎么办 怎么回事?这是我们经常会遇到的这种的问题&#xff0c;今天小编就和大家分享电脑开不了机了的原因及解决方法。 工具/原料&#xff1a; 系统…

outlook中抄送操作和163撤回邮件

(1)CC和BCC 电子邮件中的CC 英文全称是 Carbon Copy(抄送)。 电子邮件中的BCC英文全称是 Blind Carbon Copy(暗抄送)。 两者的区别在于在BCC栏中的收件人可以看到所有的收件人名(TO&#xff0c;CC&#xff0c;BCC)&#xff0c;而在TO和CC栏中的收件人看不到BBC的收件人名。 …

Android 代码混淆Proguard

混淆概念 Android代码混淆&#xff0c;又称Android混淆&#xff0c;是伴随着Android系统的流行而产生的一种APP保护技术&#xff0c;用于保护APP不被破解和逆向分析。 在Android的具体表现就是打包时&#xff0c;将项目里的包名、类名、变量名根据混淆规则进行更改&#xff0c…

【POJ No. 1743】音乐主题 Musical Theme

【POJ No. 1743】音乐主题 Musical Theme 北大OJ 题目地址 【题意】音乐旋律被表示为N &#xff08;1≤N ≤20000&#xff09;个音符的序列&#xff0c;它们是[1, 88]内的整数&#xff0c;每个音符都代表钢琴上的一个键。许多作曲家都围绕一个重复的主题谱写音乐&#xff0c;该…