- 博客(290)
- 资源 (1)
- 收藏
- 关注

原创 Android 反编译修改包名、重新签名、更换app名称
修改包名:工具: apktool(反编译主要工具) notepad++(包名字符串替换)1、反编译:apktool d xxxx.apk2、重新打包:apktool b [反编译生成的文件夹]3、替换 res/string 文件中的 app_name 的值4、修改包名(三处需要修改)- 清单文件- smali 文件目录 注:只需要修改自创建的原有包名,不修改第三方包名哦- smali 目录下的所有文件包含的包名字符串 (全局替换哦)5、jks 签名
2021-06-16 18:57:49
7969
3

原创 Android studio 创建aidl文件无法生成Java文件或Java文件为空(没有内容)
as创建aidl文件生成Java代码为空as创建aidl生成的Java文件为空在这里mark一下我自己发现的解决方案:经过多次尝试之后,我然后在aidl文件里面写了这样一句代码,生成Java成功我之前一直报错得代码是这样子的发现有什么区别了没(这是细节)最后给出解决方案:问题所在: 带中文注释得aidl文件生成得Java文件为空解决就是,把注释去掉或者添加英文注释as创建aidl生成的Java...
2019-09-03 17:59:37
7111
32
原创 一周约占一年的 2%
好好珍惜当下、以及身边的人:我们对于时间可能毫无差距,他就这样在我们四周悄无声息的流逝当我们察觉到的时候,或许你我都老了、身边的人都老了。
2025-03-31 10:52:20
386
原创 日常项目构建错误(Android)
编译器 (17.0.12) 中出现异常错误。如果在 Bug Database (https://bugs.java.com) 中没有找到该错误,请通过 Java Bug 报告页 (https://bugreport.java.com) 建立该 Java 编译器 Bug。请在报告中附上您的程序、以下诊断信息以及传递到 Java 编译器的参数。com.sun.tools.javac.code.Symbol$CompletionFailure: 找不到javax.annotation.Nullable的类文件。
2025-03-28 09:50:15
573
原创 Toast 弹窗的排查历程
有一个游戏包被商店拘审了拘审理由是:很明显的是 toast 提示:i m holmes(有意思,我是福尔摩斯🐶)测试:这个问题你排查下,比较紧急,下午需要解决完(此时是上午🌞)(撇了一眼)这很简单啊,使用 jadx 反编译安装包,搜索字符串 i m holmes~,就知道是哪里弹出了,再把相关代码删除掉就好了B 技术: 打开 jadx,把安装包拖到里面反编译,搜索字符串… … 没有发现这个字符串啊难道字符串被加密了?B 技术: 不排除这个可能,如果是加密那可太难搞了,先不考虑这种情况会不会这个字符串是在
2025-02-14 18:23:01
932
原创 AGP8 混淆打包,反射实例化启动闪退
说明这个 ChannelReader 类的无参构造方法是需要 keep 的(实际上是否 keep 还要查看生成的包是否存在无参构造方法或查看 smali 是否有 init 实例初始化方法)既然类没有被混淆、也没有被移除构造函数,反射 ChannelReader 通过 newInstance 实例化对象是没有问题的,所以没有空指针异常。跟上述 AGP7+ 一样,说这个类的无参构造方法是需要被 keep 的,不能移除。当然了,目标就是保留无参构造方法在混淆打包过程中不被移除,反射实例化对象才正常。
2025-02-08 23:32:58
728
原创 Android LifecycleOwner 闪退,java 继承、多态特性!
相比随着 Android 的不断更新 Activity 变成了 ComponentActivity,自带生命周期 LifecycleOwner,新版本的使用相比后面都要适配。调整代码执行顺序,使成员变量 Cat 的初始化先于子类 eat 执行即可。根据上面步骤编码,实例化子类执行,问题复现,出现空指针异常!可以把成员变量成员变量 cat 实例化写到静态代码块里!为什么没有执行实例化对象?Activity:实现接口 implements。怎么验证是执行顺序问题呢?不难发现,其实就是代码执行顺序的问题。
2025-02-07 18:11:55
873
原创 最近遇到的一些 Android 小问题
Setting -> experimental -> Gradle -> Do not build gradle task list during Gradle sync 【取消勾选】Setting -> experimental -> Gradle -> Configure all Gradle tasks during Gradle Sync【勾选上】检查 AGP、gradle 版本,如果版本过低,需要升级版本,如 AGP 升级到 4.1.2、Gradle 升级到 6.5.1。使用进程占用解锁工具。
2025-01-25 10:44:26
636
原创 Jenkins 启动
这一阵子感觉空虚,心里空捞捞的,总想找点事情做,即使这是一件微小的事情,空余时间除了骑车、打球,偶尔朋友聚会 … 还能干什么呢?当独自一人时,究竟可以做点什么,填补这空虚的一天?我目前能想到的就只有学习,技术是坚实的保障,学习为成长提供充足的养分。当你跳出舒适区或者面临裁员之际,摆在面前的首要任务便是更新简历。而此时,能否刷新那些令自己感到满意的技能或经验,很大程度上取决于你在此前所进行的学习以及积累的成果。在未来和当下希望自己能够有计划的学习。
2025-01-20 22:48:34
1595
1
原创 Theme.NoTitleBar.Fullscreen 主题设置状态栏颜色无效
不调用全屏或隐藏接口,直接设置 Activity。一开始我还以为设置状态栏颜色的方法。但是我需要隐藏状态栏,怎么办?实在没办法了,偷点懒。
2025-01-20 18:38:23
350
原创 Gradle 下载失败找不到证书 ValidatorException
keytool -import -keystore “jdk 路径下的\security\cacerts” -file “C:\Users\QAQ\Downloads\gradle.org.crt”keytool -list -keystore “jdk 路径下的\lib\security\cacerts” > keystore-info.log。通过对比证书的 SHA-256 是否存在证书列表里判断导入证书成功与否。在导入证书前,我们先使用查看获取一份已有证书。在导入证书后,再获取一份已有证书。
2025-01-15 14:40:48
756
原创 !AGP8+ 的 Transform + ASM 模板
所有的 class 输入都放置在一个目录下面,所以我们要遍历该目录下的所有 class 文件,为下一步处理做准备。获取所有 class 输入:transformInput.getDirectoryInputs()目录可直接获得 class 文件,通常修改 class 文件我们用。遍历压缩包获取 class 文件得到字节数组使用 ASM 操作即可。,处理完毕得到新的字节数组,重新写入文件,覆盖已有文件即可;至于要处理那些 class 文件,要如何处理?ASM 处理字节码输入的是字节码文件的字节数组。
2025-01-06 11:55:04
321
原创 Git 行尾换行符,导致无法进入游戏
当我把工程通过 Git 上传到仓库,在远程通过 Jenkins 拉取工程到打包机(window)打包,安装、运行异常,弹出下面的错误弹窗,组织进入游戏。这是一个 laya 游戏,游戏主要资源在 assets 目录下,排除其他文件,发现 assets/cache 下的游戏资源存在差异。最后通过 AL 问答,了解到这可能是由 Git 导致的,通过按下面两篇文章实践操作,问题真解决了,还真是这个换行符导致的。一开始还不清楚这两个是什么,但是联想到换行符,有一点印象是不同系统之间换行符是存在差异的。
2024-12-27 14:06:39
552
原创 Mac Android Studio 很实用的两个快捷键
默认快捷键:control + option + O。默认快捷键:shift + command + L。
2024-12-19 23:20:58
319
原创 Gradle 插件获取所有依赖项,类似 androidDependencies?
双击执行很容易知道模块的信息,但是我想在 gradle 打包插件里面知道这个信息。根据模块是否存在指定某些操作;拿到模块的版本号判断是否执行某个操作,怎么办呢?全部依赖,获得的依赖和 androidDependencies 获取的一致。**不满足需求:**使用这个输出的依赖只有一小部分,依赖不完全。我们利用 Android studio 已有的任务。只是这个返回需要一定时间获取依赖项,并且要去重。还有常用的方法:排除某个模块。
2024-10-11 18:32:32
279
原创 华为商店包拒审,检测到 Evo-gen [Trj] 病毒
华为商店包报毒拒审说明:您的游戏经检测发现含有Android:Evo-gen [Trj]|+AG1498426|egap病毒,不符合华为应用市场审核标准。修改建议:请参考测试结果,检查游戏apk文件、代码、第三方sdk等信息,删除病毒相关内容。
2024-10-10 11:51:10
948
原创 Macbook ToDesk 无法连接网络
检查登录项,看到后台运行项目是关闭状态,允许后台运行之后返回查看立马显示网络连接正常。网络连接的是 Wi-Fi,打开浏览器能跟正常浏览内容,说明 Wi-Fi 是正常的。检查防火墙是没有阻止ToDesk 的任何连接,说明防火墙也是正常的。
2024-10-04 20:38:10
6999
4
原创 华为联运:资源混淆导致的浮标显示异常
正常情况,华为联运包登录成功之后会显示,拖动浮标会出现而在我们的游戏中,遇到有部分内容被遮挡了,导致被拒审。粗略看上层遮挡部分的高度正好等同于状态栏的高度,一开始怀疑是否设置全屏或水滴屏、刘海屏适配问题,经大概测试似乎不是。
2024-06-20 16:30:50
334
原创 R 文件优化插件:Binary XML file in layout Error inflating class
InflateException 在 Android 中我们遇到的通常发生在自定义 View 创建中,动态加载布局一般使用。
2024-06-15 01:47:45
536
原创 AGP4+ 打包运行闪退,AGP7+ 正常(has code but is marked native or abstract)
安装应用,点击图标启动立马闪退!诡异的闪退:AGP4+ 打包运行闪退,AGP7+ 正常日志两个主要点:com.android.boot.App 是 Android 的 application 子类,程序入口o0o0O0o/OOO0oo/Ooo0oo/Ooo0oo/o0OOo0oo/oOo0o 是混淆之后的一个类(类名)反编译查看安装包,上述两个日志说不存在的类,包里面确实是都存在的,那很奇怪为什么还报错找不到类?
2024-06-08 18:29:34
841
3
原创 AGP8+ android.useNewApkCreator‘ is deprecated 打包失败
我们都知道,project.properties 属性值主要数据来源是 gradle.properties 配置文件。果不其然,通过磁盘全局搜索发现一个醒目了路径下存在这个文件,打开一看正如我所想,注释掉之后再运行不再报错了~新建一个项目,默认使用最新版的 AGP 和 Gradle,打包构建立马失败!我们通过在 build.gradle 文件输出属性配置,文件内配置了该属性,并且这个文件是每个项目都会读取的?全局搜索,当前项目确实没有配置该属性。这或许是 AS 的默认配置文件吧。,这属性到底是哪里来的?
2024-06-03 16:16:09
680
1
原创 微信资源混淆,导致的约束布局 Constraintlayout 控件重叠!
虽然我不参与广告 sdk 接入等先关工作,但是最近总是听到一个词广告六要素。这到底是什么?国内下载类广告,尤其是针对移动应用推广的广告,其成功实施往往围绕几个关键要素进行,这些要素能够帮助广告主更有效地触达目标用户,促进应用下载。下图以荣耀广告为例,
2024-05-27 18:24:21
1732
原创 打包要求 minCompileSdk 使用指定版本及以上
androidx.appcompat:appcompat:1.0.0 间接依赖了,但是被其他因素强制升级依赖。那么如果我不想升级 compileSdkVersion 应该怎么办?我当前的 compileSdkVersion 30,因为依赖了。它要求最低 compileSdkVersion 33。core:core 版本内部依赖了。看看谁依赖了这两个版本。
2024-05-25 14:37:50
569
原创 使用 ASM 修改字段类型,解决闪退问题
在桥接类 UnityBridgeActivity 中处理不同 unity 版本调用闪退问题。闪退日志说在中找不到类型为 UnityPlayer 的属性 mUnityPlayer。我们知道,Android unity 游戏开发中通常只有一个 Activity 为游戏主页面,且该 Activity 需要继承自unity 的实现,内部有一个重要类是通过它进一步调用接口渲染游戏等。在我们的 sdk 中 Activity 之间的关系大概是这样,也就是在桥接类中是可以访问父类的成员 mUnityPlayer 的。
2024-05-23 22:28:13
1233
原创 因 androidx.work:work-runtime 版本过低导致的闪退
黑盒BlackBox,是一款虚拟引擎,可以在Android上克隆、运行虚拟应用,拥有免安装运行能力。黑盒可以掌控被运行的虚拟应用,做任何想做的事情。今天在 BlackBox 盒子启动应用,在 Android13 上,启动使用 agp7 打出包又遇到了应用启动之后出现闪退,记录一下吧!版本是 2.1.0,升级到 2.7.0 问题不再复现了。
2024-05-16 16:21:17
698
原创 升级到 AGP7+,适配 assets 目录了吗
我们知道 assets 文件处理的任务是在 AGP 升级过程中,不同的 Android Gradle Plugin 版本打包过程中可能存在不一致的情况!
2024-05-10 12:21:15
470
pc端长截图软件.zip
2020-01-03
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人