<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Primer5]]></title><description><![CDATA[萌新笔记]]></description><link>https://blog.youkuaiyun.com/printf123scanf</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; printf123scanf]]></copyright><item><title><![CDATA[鸿蒙构建失败：00303149 Configuration Error]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/160857842</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/160857842</guid><author>printf123scanf</author><pubDate>Thu, 07 May 2026 14:32:22 +0800</pubDate><description><![CDATA[将原本的工作目录路径。]]></description><category></category></item><item><title><![CDATA[Res 资源混淆，AI 时代人人都是“技术大佬]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/160344783</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/160344783</guid><author>printf123scanf</author><pubDate>Mon, 20 Apr 2026 20:34:35 +0800</pubDate><description><![CDATA[这些插件官方都不维护了，偶尔有人 fork 适配 AGP 高版本，今天学习 cursor 就实现看看。个人学习项目，不喜勿喷。字节 aab 资源混淆插件 AabResGuard，上一次更新也是 5 年前；1、调教 AI 实现资源混淆关键是要同步修改 resource.pb 映射。微信资源混淆插件 AndResGuard，上一次更新还是 5 年前；2、maven central 如何发布自己的库。有了 AI 天天沉迷 Coding。就是把自己的想法交给 AI 实现。快，快给我一点 Token。]]></description><category></category></item><item><title><![CDATA[踩坑：鸿蒙自动化构建 Jenkins 节点部署到window server]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/156395447</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/156395447</guid><author>printf123scanf</author><pubDate>Mon, 29 Dec 2025 19:07:36 +0800</pubDate><description><![CDATA[我的 Jenkins  节点有好几个，巧合的是第一个部署节点我选择了 window server，然后就是直接遇到打包失败，工具链内部代码报错，工程文件明明存在，报错说文件不存在。就是说目前 deveco studio ide 在 window server 上部署 Jenkins  流水线构建不行，等一个适配版本。一段时间后华为技术拉会远程桌面排查问题，经过两个小时会议基本定位问题所在。内部讨论一周后回邮件，就是 window server 尚未适配。]]></description><category></category></item><item><title><![CDATA[Jenkins 搭建鸿蒙打包]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/150072562</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/150072562</guid><author>printf123scanf</author><pubDate>Mon, 11 Aug 2025 10:09:18 +0800</pubDate><description><![CDATA[特别是 window 环境下，并发构建容易触发进程占用工作目录下的某个文件，导致清空工作目录时无法删除文件，触发报错不能正常打包。Jenkins 打包工作目录所在工程执行错误，输出的是系统环境变量配置的其他路径（这个可能是因为我之前安装其他版本时配置的。中执行，你可能会遇到前几行代码执行了，在某行代码执行完之后中断了，后面代码未执行（猜想：可能是那样代码执行完返回了退出）原因是 Hvigorw 所执行版本不一致，删除系统环境变量的配置，使用 DevEco Sdutio 安装目录下的配置。]]></description><category></category></item><item><title><![CDATA[Android aab AabResGuard 资源混淆配置，坑！]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/149247060</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/149247060</guid><author>printf123scanf</author><pubDate>Thu, 10 Jul 2025 16:37:52 +0800</pubDate><description><![CDATA[Google 包现在都要求上传 AAB 包（App bunlde），那么就会有混淆 res 资源的需求我们以前出 apk 包用的是微信资源混淆工具AabResGuard 资源混淆插件配置。]]></description><category></category></item><item><title><![CDATA[鸿蒙：启动本地 http-server 加载 h5 游戏]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/148794602</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/148794602</guid><author>printf123scanf</author><pubDate>Fri, 20 Jun 2025 16:29:13 +0800</pubDate><description><![CDATA[可使用 router.replaceNamedRoutepage 定义路由名称注意导入页面，否则报错找不到路径【2】应用侧与 H5 侧的交互通道前端页面调用应用侧函数Android 端交互需要设置鸿蒙端交互在Web组件调用【3】找到游戏入口 index.html 文件游戏资源文件可以存放在该目录下通过获得resfile目录，使用递归查找到index.html文件链接获取index.html文件父目录路径，为后续资源请求路径重定向读取资源真实路径做准备【4】Web 请求资源重定向重写 Web 组件。]]></description><category></category></item><item><title><![CDATA[从 native 获取 AndroidId，Frida 获取 native 堆栈]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/148741040</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/148741040</guid><author>printf123scanf</author><pubDate>Wed, 18 Jun 2025 15:42:08 +0800</pubDate><description><![CDATA[【代码】从 native 获取 AndroidId，Frida 获取 native 堆栈。]]></description><category></category></item><item><title><![CDATA[插件内获取 Android gradle plugin 版本号]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/148106020</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/148106020</guid><author>printf123scanf</author><pubDate>Wed, 21 May 2025 10:31:36 +0800</pubDate><description><![CDATA[【代码】插件内获取 Android gradle plugin 版本号。]]></description><category></category></item><item><title><![CDATA[适配 AGP8.5，maven 私服发布报错（七）]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/147624928</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/147624928</guid><author>printf123scanf</author><pubDate>Wed, 30 Apr 2025 09:57:28 +0800</pubDate><description><![CDATA[我们知道，如果同一个版本发布两次那么第二次会报错，大概意思是 maven 私服同一个版本只能发布一次，不能覆盖或许可以设置强行覆盖，即使支持版本覆盖一般也不会这么干。]]></description><category></category></item><item><title><![CDATA[AGP8+ fullMode 完全模式混淆闪退]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/147483293</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/147483293</guid><author>printf123scanf</author><pubDate>Thu, 24 Apr 2025 18:01:25 +0800</pubDate><description><![CDATA[总之，时间紧迫，先一把梭哈关闭 R8 fullMode 让项目先运行起来。❌ 在 AGP8+ 打包运行闪退（混淆包闪退、非混淆包正常）没有时间研究，也研究不懂，对新手来说升级 AGP 坑不浅啊。❌ 开启混淆打包，运行闪退（出现上文所示代码）✅ 在 AGP6+ 打包运行正常。✅ 在 AGP7+ 打包运行正常。好像也没发现什么东西。温故知新，问下 Al。]]></description><category></category></item><item><title><![CDATA[适配 AGP8.5，构建参数 targetSdk 等配置（六）]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/147037585</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/147037585</guid><author>printf123scanf</author><pubDate>Tue, 08 Apr 2025 18:26:24 +0800</pubDate><description><![CDATA[找到这个 jar 使用 JADX 打开搜索设置 compileSdk  相似接口就发现了。对我们来说 AGP8+ 可能是新事物，这能这样慢慢摸索了，除非官方文档有相应的 demo。同样的，targetSdk、minSdk 你也可以这样寻找。设置 compileSdk  怎么找到。]]></description><category></category></item><item><title><![CDATA[我提了一个 Androidx IssueTracker]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/147065317</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/147065317</guid><author>printf123scanf</author><pubDate>Tue, 08 Apr 2025 14:56:27 +0800</pubDate><description><![CDATA[一开始我还以为是因为我的插件 transform 存在问题导致打包报错。在运行 gradle plugin 插件的 transform。那么先尝试降低一个版本打包会不会也有这个问题呢？但是总不能一直降版本打包吧，所以创建了一个。查看官方发布的版本日志，目前最新版本就是。看看我当前的打包环境，AGP7+ 的工程。我对这个 Issue 做一个简单的总结。没错，我还是选择先降版本打包，使用。这个依赖最终是谁引入的呢？难道我后续打包都要使用低版本吗？所以临时解决版本发降版本打包。可能需要 VPN 才能访问。]]></description><category></category></item><item><title><![CDATA[适配 AGP8.5 版本，版本依赖管理（五）]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/146986424</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/146986424</guid><author>printf123scanf</author><pubDate>Thu, 03 Apr 2025 18:32:28 +0800</pubDate><description><![CDATA[骑车吗，累了吗？到哪里都能躺下。]]></description><category></category></item><item><title><![CDATA[适配 AGP8.5 版本，Transform（四）]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/145925099</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/145925099</guid><author>printf123scanf</author><pubDate>Fri, 28 Mar 2025 18:02:48 +0800</pubDate><description><![CDATA[支持的组件输出、输入类型支持的转换类型：（列举几个常用的）]]></description><category></category></item><item><title><![CDATA[适配 AGP8.5 版本，各种问题（三）]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/145756597</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/145756597</guid><author>printf123scanf</author><pubDate>Mon, 24 Feb 2025 13:03:38 +0800</pubDate><description><![CDATA[地点：深圳、西丽湖环湖碧道时间：2025年2月23日。]]></description><category></category></item><item><title><![CDATA[Android：启动本地 http-server 加载 h5 游戏]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/145741442</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/145741442</guid><author>printf123scanf</author><pubDate>Thu, 20 Feb 2025 00:39:00 +0800</pubDate><description><![CDATA[今日图片> 时间：2025年2月16日> 地点：深圳.前海湾。]]></description><category></category></item><item><title><![CDATA[适配 AGP8.5 版本，字节码转换（二）]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/145664475</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/145664475</guid><author>printf123scanf</author><pubDate>Sun, 16 Feb 2025 15:09:34 +0800</pubDate><description><![CDATA[今日图片时间：2025.02.14    周五地点：深大地铁站。]]></description><category></category></item><item><title><![CDATA[AGP 升级，适配 8.5 版本（一）]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/145543056</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/145543056</guid><author>printf123scanf</author><pubDate>Tue, 11 Feb 2025 18:29:37 +0800</pubDate><description><![CDATA[本次升级是从之前的 AGP7+ 升级到 AGP8+]]></description><category></category></item><item><title><![CDATA[AGP8 混淆打包，反射实例化启动闪退]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/145520819</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/145520819</guid><author>printf123scanf</author><pubDate>Sat, 08 Feb 2025 23:32:58 +0800</pubDate><description><![CDATA[说明这个 ChannelReader 类的无参构造方法是需要 keep 的（实际上是否 keep 还要查看生成的包是否存在无参构造方法或查看 smali 是否有 init 实例初始化方法）既然类没有被混淆、也没有被移除构造函数，反射 ChannelReader 通过 newInstance 实例化对象是没有问题的，所以没有空指针异常。跟上述 AGP7+ 一样，说这个类的无参构造方法是需要被 keep 的，不能移除。当然了，目标就是保留无参构造方法在混淆打包过程中不被移除，反射实例化对象才正常。]]></description><category></category></item><item><title><![CDATA[Android LifecycleOwner 闪退，java 继承、多态特性！]]></title><link>https://blog.youkuaiyun.com/printf123scanf/article/details/145492567</link><guid>https://blog.youkuaiyun.com/printf123scanf/article/details/145492567</guid><author>printf123scanf</author><pubDate>Fri, 07 Feb 2025 18:11:55 +0800</pubDate><description><![CDATA[相比随着 Android 的不断更新 Activity 变成了 ComponentActivity，自带生命周期 LifecycleOwner，新版本的使用相比后面都要适配。调整代码执行顺序，使成员变量 Cat 的初始化先于子类 eat 执行即可。根据上面步骤编码，实例化子类执行，问题复现，出现空指针异常！可以把成员变量成员变量 cat 实例化写到静态代码块里！为什么没有执行实例化对象？Activity：实现接口 implements。怎么验证是执行顺序问题呢？不难发现，其实就是代码执行顺序的问题。]]></description><category></category></item></channel></rss>