<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[iotjin的专栏]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/iotjin</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; iotjin]]></copyright><item><title><![CDATA[【Flutter Android 构建】Flutter / Gradle / AGP / Kotlin 版本对应关系全解析 - 2026版]]></title><link>https://blog.csdn.net/iotjin/article/details/161996470</link><guid>https://blog.csdn.net/iotjin/article/details/161996470</guid><author>iotjin</author><pubDate>Mon, 15 Jun 2026 10:11:58 +0800</pubDate><description><![CDATA[你可能以为 Flutter 项目只要管好 Dart 就行，但执行时，底层走的仍是android/里的 Gradle 构建链。flutter build apk 失败，但 flutter run 可以A problem occurred configuring project ':某插件'.一句话总结：Flutter 负责 Dart 层，android/目录负责 Android 打包层——两套版本都要对齐。而且 flutter upgrade不会自动升级你项目里的android/配置。]]></description><category></category></item><item><title><![CDATA[【Android 构建必读】构建工具链版本对应关系全解析 · 2026版]]></title><link>https://blog.csdn.net/iotjin/article/details/161995866</link><guid>https://blog.csdn.net/iotjin/article/details/161995866</guid><author>iotjin</author><pubDate>Mon, 15 Jun 2026 09:53:53 +0800</pubDate><description><![CDATA[如果你遇到过下面这类报错，大概率不是代码写错了，而是构建工具版本没对齐一句话总结：Android 构建是一套「环环相扣」的工具链——不只是 AGP 和 Gradle，Kotlin、KSP、Compose、JDK、Studio 都要对齐，任何一个环节版本不对，整个项目就编不过。本文的目标很简单——让你升级时直接查表、照表操作，不用到处搜碎片信息。Android 构建版本升级，说难不难，说简单也不简单。查表对齐：AGP、Gradle、Studio、Kotlin、KSP、Compose、JDK 七者版本要匹配。]]></description><category></category></item><item><title><![CDATA[【Android 构建必读】Gradle 与 AGP 版本对应关系全解析 - 2026版]]></title><link>https://blog.csdn.net/iotjin/article/details/161995114</link><guid>https://blog.csdn.net/iotjin/article/details/161995114</guid><author>iotjin</author><pubDate>Mon, 15 Jun 2026 09:26:08 +0800</pubDate><description><![CDATA[如果你遇到过下面这类报错，大概率不是代码写错了，而是构建工具版本没对齐一句话总结：Android 构建是一套「环环相扣」的工具链，任何一个环节版本不对，整个项目就编不过。本文的目标很简单——让你升级时直接查表、照表操作，不用到处搜碎片信息。Android 构建版本升级，说难不难，说简单也不简单。查表对齐：AGP、Gradle、Studio、Kotlin 四者版本要匹配按序升级：JDK → Gradle → AGP → Kotlin/插件分步验证：别一口气跳三个大版本，每步构建通过再继续建议把本文。]]></description><category></category></item><item><title><![CDATA[Flutter - SDK升级适配问题]]></title><link>https://blog.csdn.net/iotjin/article/details/157283988</link><guid>https://blog.csdn.net/iotjin/article/details/157283988</guid><author>iotjin</author><pubDate>Fri, 23 Jan 2026 11:14:09 +0800</pubDate><description><![CDATA[解决方案 git 原文 ] (https://github.com/flutter/flutter/issues/170655)解决方案： 删除下面的代码。]]></description><category></category></item><item><title><![CDATA[.NET 7.0 EF Core：一、创建Web API 项目基础框架和用户表的增删改查]]></title><link>https://blog.csdn.net/iotjin/article/details/148846035</link><guid>https://blog.csdn.net/iotjin/article/details/148846035</guid><author>iotjin</author><pubDate>Wed, 25 Jun 2025 14:53:03 +0800</pubDate><description><![CDATA[4)、最后使用 EF Core 提供的迁移与数据库更新命令（Add-Migration 和 Update-Database）即可在数据库中生成对应的 User 表结构，实现从代码到数据库的完整同步。完整代码如下，东西都写在一个文件了，以后如果加上像swagger配置、依赖注入、参数校验、中间件等，文件会越来越多，把代码都抽出来，保持主入口简洁。作用：用于创建数据库迁移文件。, 什么都不改，可以看到返回的数据并不是预期的结构，这是因为使用的是默认的校验，没有用自定义校验，在下一步优化。]]></description><category></category></item><item><title><![CDATA[HarmonyOS NEXT - 微信朋友圈效果实现]]></title><link>https://blog.csdn.net/iotjin/article/details/145726860</link><guid>https://blog.csdn.net/iotjin/article/details/145726860</guid><author>iotjin</author><pubDate>Wed, 19 Feb 2025 13:23:05 +0800</pubDate><description><![CDATA[在demo中这些组件和工具类都通过module实现了，具体可以参考。]]></description><category></category></item><item><title><![CDATA[HarmonyOS NEXT - picker 选择器( 包含 单列、多列、底部选择器)]]></title><link>https://blog.csdn.net/iotjin/article/details/145571119</link><guid>https://blog.csdn.net/iotjin/article/details/145571119</guid><author>iotjin</author><pubDate>Tue, 11 Feb 2025 14:55:15 +0800</pubDate><description><![CDATA[在demo中这些组件和工具类都通过module实现了，具体可以参考。]]></description><category></category></item><item><title><![CDATA[HarmonyOS NEXT - Dialog 和完全自定义弹框]]></title><link>https://blog.csdn.net/iotjin/article/details/144694425</link><guid>https://blog.csdn.net/iotjin/article/details/144694425</guid><author>iotjin</author><pubDate>Tue, 24 Dec 2024 15:24:59 +0800</pubDate><description><![CDATA[效果图调用方式JhDialog.ets 完整代码官方dialog 比较反人类，调用比较麻烦，下面两种还略微好点通过实现自定义弹窗。对应官方文档不依赖UI组件的全局自定义弹出框 (openCustomDialog)（推荐）对应官方文档在三方库上找了一个弹框库，简单调整样式封装了一层需要先在项目中导入三方库OpenHarmony ohpm 环境配置等更多内容，请参考如何安装 OpenHarmony ohpm 包。]]></description><category></category></item><item><title><![CDATA[HarmonyOS NEXT - 仿微信主界面（首页 通讯录 发现 我的）]]></title><link>https://blog.csdn.net/iotjin/article/details/144126222</link><guid>https://blog.csdn.net/iotjin/article/details/144126222</guid><author>iotjin</author><pubDate>Fri, 29 Nov 2024 09:15:52 +0800</pubDate><description><![CDATA[初始数据是对象数组，因为通讯录的页面是分组的结构，并且List组件的分组需要转成每组下面是对应组的数组，因此要对原始数据根据key分组处理。本demo基于 HarmonyOS 5.0.0(12) 仿写微信主界面效果（首页 通讯录 发现 我的）发现和我的页面通过封装的组件实现参考demo或者。发现和我的页面通过封装的组件实现参考demo或者。组件分组列表实现 ,]]></description><category></category></item><item><title><![CDATA[HarmonyOS NEXT - 表单录入组件封装(TextInput)]]></title><link>https://blog.csdn.net/iotjin/article/details/142750840</link><guid>https://blog.csdn.net/iotjin/article/details/142750840</guid><author>iotjin</author><pubDate>Tue, 08 Oct 2024 09:05:48 +0800</pubDate><description><![CDATA[对TextInput 简单封装了下面几种类型的录入样式。鸿蒙next中有两种类型的录入框。]]></description><category></category></item><item><title><![CDATA[HarmonyOS NEXT - 项目基础框架的搭建]]></title><link>https://blog.csdn.net/iotjin/article/details/141254442</link><guid>https://blog.csdn.net/iotjin/article/details/141254442</guid><author>iotjin</author><pubDate>Fri, 16 Aug 2024 13:43:48 +0800</pubDate><description><![CDATA[达到项目最低限度的要求要把项目结构定好，要可以网络请求，有一些必要组件和工具类，有登录页面和主页面，可以进行路由跳转。所以需要创建Navigation组件和tabbar组件，然后通过路由连通单个页面。切换通过在程序的第一个页面内处理，根据登录信息做判断显示登录页还是主页面。通过本地存储的用户信息判断是切换到登录页面还是主页面。退出登录把用户信息清掉，并把路由替换掉即可。和4个子页面，子页面内部再实现。模块 ，通用图片资源放在了。这里只举列第一个页面,模块，组件和工具类在。至此大框架已经出来了。]]></description><category></category></item><item><title><![CDATA[HarmonyOS NEXT - 三方库axios的使用和封装]]></title><link>https://blog.csdn.net/iotjin/article/details/141027559</link><guid>https://blog.csdn.net/iotjin/article/details/141027559</guid><author>iotjin</author><pubDate>Fri, 16 Aug 2024 10:54:00 +0800</pubDate><description><![CDATA[这样在项目中以后只使用第二次封装的代码，如果后期需要调整会方便一点。在demo中这些组件和工具类都通过module实现了，具体可以参考。OpenHarmony ohpm 环境配置等更多内容，请参考。然后在当前目录的 oh_modules 目录下就可以看到了。，第二次又添加了loading和返回错误弹框提示。要请求网络数据，首先需要申请权限，需要在。loading组件的实现看这里。点击 Sync Now同步一下。封装了2层，第一次是基础封装。文件中设置网络访问权限。]]></description><category></category></item><item><title><![CDATA[HarmonyOS NEXT - Navigation组件封装BaseNavigation]]></title><link>https://blog.csdn.net/iotjin/article/details/141248236</link><guid>https://blog.csdn.net/iotjin/article/details/141248236</guid><author>iotjin</author><pubDate>Fri, 16 Aug 2024 10:18:23 +0800</pubDate><description><![CDATA[组件导航 (Navigation)(推荐)Navigation是路由容器组件，一般作为首页的根容器，包括单栏(Stack)、分栏(Split)和自适应(Auto)三种显示模式。Navigation组件适用于模块内和跨模块的路由切换，一次开发，多端部署场景。通过组件级路由能力实现更加自然流畅的转场体验，并提供多种标题栏样式来呈现更好的标题和内容联动效果。在不同尺寸的设备上，Navigation组件能够自适应显示大小，自动切换分栏展示效果。]]></description><category></category></item><item><title><![CDATA[HarmonyOS NEXT - 数据持久化存储(key,value进行AES加密处理)]]></title><link>https://blog.csdn.net/iotjin/article/details/141244199</link><guid>https://blog.csdn.net/iotjin/article/details/141244199</guid><author>iotjin</author><pubDate>Fri, 16 Aug 2024 09:23:23 +0800</pubDate><description><![CDATA[鸿蒙的数据持久化是通过PersistentStorage是应用程序中的可选单例对象。此对象的作用是持久化存储选定的AppStorage属性，以确保这些属性在应用程序重新启动时的值与应用程序关闭时的值相同。官方建议是通过和AppStorage联合使用demo这里使用的是三方库数进行据存储，这是一个常用工具类的三方库，使用的里面的存数据时先对key和value 进行加密处理，然后再存到本地，这样本地数据都是密文aes加密工具类，这里使用了三方库需要先安装两个三方库。]]></description><category></category></item><item><title><![CDATA[HarmonyOS NEXT - 使用crypto-js实现Base64、MD5、AES加解密(CBC/PKCS7)]]></title><link>https://blog.csdn.net/iotjin/article/details/141224280</link><guid>https://blog.csdn.net/iotjin/article/details/141224280</guid><author>iotjin</author><pubDate>Fri, 16 Aug 2024 09:07:01 +0800</pubDate><description><![CDATA[在线加密网站OpenHarmony三方库中心仓 已经有大牛发布适配好的crypto-js库，直接使用这个就行需要先在项目中导入三方库OpenHarmony ohpm 环境配置等更多内容，请参考更多使用方法请参照及我在项目中只用了Base64、MD5、AES加解密(CBC/PKCS7) 写了个工具类()进行调用。]]></description><category></category></item><item><title><![CDATA[HarmonyOS NEXT - Toast和Loading使用]]></title><link>https://blog.csdn.net/iotjin/article/details/141222381</link><guid>https://blog.csdn.net/iotjin/article/details/141222381</guid><author>iotjin</author><pubDate>Fri, 16 Aug 2024 09:06:27 +0800</pubDate><description><![CDATA[以下是在第一个page的aboutToAppear方法初始化的。OpenHarmony ohpm 环境配置等更多内容，请参考。官方有个toast但是比较单一（官方toast。），在三方库上找了一个弹框库，调整样式封装了一层。需要先全局初始化一次，否则弹框不显示。需要先在项目中导入三方库。]]></description><category></category></item><item><title><![CDATA[HarmonyOS NEXT - 通过 module 模块化引用公共组件和utils]]></title><link>https://blog.csdn.net/iotjin/article/details/141024179</link><guid>https://blog.csdn.net/iotjin/article/details/141024179</guid><author>iotjin</author><pubDate>Fri, 16 Aug 2024 09:05:21 +0800</pubDate><description><![CDATA[HAP官方介绍HAP（Harmony Ability Package）是应用安装和运行的基本单元。HAP包是由代码、资源、第三方库、配置文件等打包生成的模块包，其主要分为两种类型：entry和feature。entry：应用的主模块，作为应用的入口，提供了应用的基础功能。feature：应用的动态特性模块，作为应用能力的扩展，可以根据用户的需求和设备类型进行选择性安装。应用程序包可以只包含一个基础的entry包，也可以包含一个基础的entry包和多个功能性的feature包。HAR官方介绍。]]></description><category></category></item><item><title><![CDATA[Flutter - 安卓一次打包不同包名的apk]]></title><link>https://blog.csdn.net/iotjin/article/details/138211933</link><guid>https://blog.csdn.net/iotjin/article/details/138211933</guid><author>iotjin</author><pubDate>Tue, 23 Jul 2024 14:53:41 +0800</pubDate><description><![CDATA[有时为了方便测试，同一个app需要在一个手机上装两个，直接改包名的话比较麻烦，这时可以通过添加flavor进行多维度打包，同一份代码可以设置不同的包名，app应用名称和应用图标。]]></description><category></category></item><item><title><![CDATA[vue3 - vue项目自动检测更新]]></title><link>https://blog.csdn.net/iotjin/article/details/140349880</link><guid>https://blog.csdn.net/iotjin/article/details/140349880</guid><author>iotjin</author><pubDate>Thu, 11 Jul 2024 14:22:23 +0800</pubDate><description><![CDATA[web项目当页面检测到需要更新，然后弹框提示是否更新（刷新页面）这种可以通过纯前端实现也可以通过接口实现。]]></description><category></category></item><item><title><![CDATA[Flutter - Material3适配]]></title><link>https://blog.csdn.net/iotjin/article/details/139586803</link><guid>https://blog.csdn.net/iotjin/article/details/139586803</guid><author>iotjin</author><pubDate>Tue, 11 Jun 2024 11:14:04 +0800</pubDate><description><![CDATA[这时运行项目会发现有些UI效果和之前有点不一样，如果原本使用的是默认的主题色，此时会发现主题色已经发生变化，因为Material3的默认主题不再是蓝色，变成了紫色。根据需要打开并配置, 如果有基础组件也可以针对组件单独配置。也可以设置，不过可能需要多配置点东西。其中最重要的是设置主色调，在。flutter SDK升级到。其余的就是一些组件的设置了。设置主色调，当然通过。属性如果不设置默认为。设置整个项目的，对应。]]></description><category></category></item></channel></rss>