Android App 混淆、打包、错误日志追踪

一 打混淆包,带正式签名

1 编辑proguard-rules.txt文件,配置好不能混淆的类或方法,否则会报错。

a、需要反射的代码

b、系统接口

c、Jni接口

d、需要序列号和反序列化的代码(即实现Serializable、Parcelable接口的JavaBean)

e、与服务端进行元数据交互的JavaBean(JSON、XML中对应的类)

 

2 检查 gradle.build文件中的buildTypes  release节点,确认minifyEnabled true

3 LogUtils工具类中关闭log的打印

4 可以直接在AS自带的命令行里面 执行gradle clean assembleRelease 打包

5 找到 ./build/outputs/apk/XXX-release.apk

注意备份mapping文件 ./build/outputs/mapping/release/mapping.txt

二 通过mapping文件查看混淆后的报错问题:

1,进入android  sdk目录 sdk/tools/proguard/bin/proguardgui.sh   将这个文件拖到命令行中,这样就可以进入一个图形界面操作了。

2, ReTrace-->导入 mapping.txt文件,将崩溃收集器文件中的报错日志粘贴到 Obfuscated stack trace中,然后点击 ReTrace! 按钮,这样你就可以看到混淆前的代码了,定位bug当然不在话下啦!

时间: 2024-08-03 19:15:01

Android App 混淆、打包、错误日志追踪的相关文章

Android App签名打包 与 SDK开发文档

Android App签名打包签名的意义1.为了保证每个程序开发者的合法权益2.放置部分人通过使用相同的Package Name来混淆替换已经安装的程序,从而出现一些恶意篡改3.保证我们每次发布的版本的一致性(如自动更新不会因为版本不一致而无法安装)项目(点击右键)->Export,android…… 使用SDK开发文档adt-xxx/sdk/docs/index.html

egret 打包android app 时 js 错误

创建android app,  编译后生成apk,手机安装后无法运行,弹出以下错误: JS error report error  assets/egret-game/libs/core/egret/context/devices/nativedevicecontext.js:203:egret_native.isFileExists is  not a function 点击错误提示框上 ok , 黑屏 出现以上错误时, 可以检查一下, core版本是否与android support 版本一

Android项目实战(二十五):Android studio 混淆+打包+验证是否成功

前言: 单挑Android项目,最近即时通讯用到环信,集成sdk的时候 官方有一句 在 ProGuard 文件中加入以下 keep. -keep class com.hyphenate.** {*;} -dontwarn com.hyphenate.** 即:混淆规则. 自己没写过关于混淆打包的文章,在此补上. 下面了解Android studio环境下 项目混淆打包的操作. ------------------------------------------------------------

Android studio 混淆打包问题

参考 : Android Studio代码混淆设置以及上传mapping文件 AndroidStudio 混淆打包 在app 目录下  proguard-rules.pro中加入 通用 混淆 #指定代码的压缩级别 -optimizationpasses 5 #包明不混合大小写 -dontusemixedcaseclassnames #不去忽略非公共的库类 -dontskipnonpubliclibraryclasses #优化 不优化输入的类文件 -dontoptimize #预校验 -dont

Android项目混淆打包

以下为我此期项目中的关于混淆打包的总结:(本人第一次混淆打包,呵呵,错误很多!列了一些比较头疼的)一.项目混淆过程中注意事项:由于我的sdk版本较高,因此新建android项目下只有proguard-project.txt和project.properties这两个文件夹,而网上一些所谓混淆的方法我均试验了下,都有或多或少的问题,以下是一些混淆总结:1.如果你的项目没有其他第三方包的话,那么进行混淆很简单,只需要将project.properties文件夹下面的注释解开就行,一点区别在于:如果您

Android工程混淆打包:一个典型过程和示例文件

本例不含依赖工程的情况,如有依赖工程,请先导出为jar包再打包: 1. 基于Android 2.1以上版本: 2. 签名的密钥文件生成: 1). 创建证书:keytool -genkey -alias mykey.keystore -keyalg RSA -keystore mykey.keystore 密码同系统登陆密码 3). 查看证书库:keytool -list -keystore mykey.keystore 4). 导出到证书文件:keytool -export -alias myk

使用javah生成.h文件, 出现无法访问android.app,Activity的错误的解决

在工程ndk22/bin/classes中 运行javah  com.cn.ndk22.Ndk22.Activity ,出现了.h文件 我在bin/classes目录中 ,就是无法访问, : 错误:无法访问android.app.Activity 找不到android.app.Activity 如下图所示 于是我cmd定位到ndk/src,中运行 javah com.heima.ndk.ndkActivity, 成功了就能成功了 ...我也不知道为什么.,如下图 总结:  使用javah生成.h

Android APP崩溃上传日志到服务器并且重启!

我们写程序的时候都希望能写出一个没有任何Bug的程序,期望在任何情况下都不会发生程序崩溃.但没有一个程序员能保证自己写的程序绝对不会出现异常崩溃.特别是当你用户数达到一定数量级后,你也更容易发现应用不同情况下的崩溃. 对于还没发布的应用程序,我们可以通过测试.分析Log的方法来收集崩溃信息.但对已经发布的程序,我们不可能让用户去查看崩溃信息然后再反馈给开发者.所以,设计一个对于小白用户都可以轻松实现反馈的应用就显得很重要了.我这里结合我自己写的一个Demo,来分析从崩溃开始到崩溃信息反馈到我们服

android studio...混淆打包全揭秘

前言,当前android studio使用的版本较新,低版本的如果有差异,或者问题,欢迎拍砖! 1.修改配置文件 找到配置文件,build.gradle,修改如下.    1 signingConfigs { 2 release { 3 // 下面各值的意思将在后续进行讲解 4 storeFile file('release.keystore') 5 storePassword "123456" 6 keyAlias "androiddebugkey" 7 keyP