不混淆 android jni,JNI 防混淆 Android proguard
先写最终解决办法
-keep class com.test.DocDetect {
*;
}
com.test.DocDetct 换成你的JNI类
异常
java.lang.UnsatisfiedLinkError: JNI_ERR returned from JNI_OnLoad
APK的release包崩溃,debug包正常
JNI内反射加载类找不到导致
反编译APK(或者看mapping文件),发现
DetectResult类,被rename 成 a.b.c,包名都变了
方法
添加JNI相关类的防混淆
解决尝试
1. keep class
防止类被移走、重命名
-keep class com.test.DetectResult
-keep class com.test.DocDetect
private的属性 被混淆
继承自接口的方法被混淆 (接口没防混淆)
2. keepclassmembers
只防止类的成员 被移走、重命名
-keepclassmembers class com.test.DetectResult {
*;
}
-keepclassmembers class com.test.DocDetect {
*;
}
com.sogou.image.document.DetectResult 被混淆
3. 最终解决
#Doc Detect SDK
-keep class com.test.DetectResult {
*;
}
-keep class com.test.DocDetect {
*;
}
文档总结
# Add *one* of the following rules to your Proguard configuration file.
# Alternatively, you can annotate classes and class members with @androidx.annotation.Keep
# keep the class and specified members from being removed or renamed
-keep class com.sogou.image.document.DocDetect { *; }
# keep the specified class members from being removed or renamed
# only if the class is preserved
-keepclassmembers class com.sogou.image.document.DocDetect { *; }
# keep the class and specified members from being renamed only
-keepnames class com.sogou.image.document.DocDetect { *; }
# keep the specified class members from being renamed only
-keepclassmembernames class com.sogou.image.document.DocDetect { *; }
本文地址:https://blog.csdn.net/zhjali123/article/details/107596775
不混淆 android jni,JNI 防混淆 Android proguard相关推荐
- Android笔记:防反编译、代码混淆中,解决第三方jar包不被混淆的一些心得,及gson防混淆方法...
为了防止代码被反编译,一般在签名导出前需要对代码进行混淆.最近发现自己的一个项目工程在代码混淆后,使用中出现了异常.以下是自己这几天在解决代码混淆以及引入第三方jar包导致混淆出现的问题处理的一些心得 ...
- eclipse java混淆打包,Android Studio和eclipse混淆打包总结
最近项目有点闲,考虑到以前的项目没有做过混淆,只是用了加固软件进行加固,为了安全性,准备给项目加上,这里做个总结,都经本人亲自在项目实践,说是为了安全性,这好像说大了,一来项目中没用到什么特别的技术, ...
- Android项目:proguard混淆之常见开源项目混淆配置
1.Gson混淆 ## ---------------------------------- ## ########## Gson混淆 ########## ## ------------------ ...
- Android系统JNI的实现方式
Android系统JNI的实现方式 All rights reserved JNI(Java Native Interface)定义了一种Java代码调用C或者C++代码等其它代码的方式. 在A ...
- [转]Android 项目的代码混淆,Android proguard 使用说明
简介 Java代码是非常容易反编译的.为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理. ProGuard是一个混淆代码的开源项目.它的主要作用就是混淆,当然它还能对字节码 ...
- android代码混淆作用,Android分享:代码混淆那些事
1) 前言 ProGuard是一个开源的Java代码混淆器.它可以混淆Android项目里面的java代码,对的,你没看错,仅仅是java代码.它是无法混淆Native代码,资源文件drawable. ...
- 读懂Android中的代码混淆
本文为本人的一些实践总结,介绍一些混淆的知识和注意事项.希望可以帮助大家更好的学习和使用代码混淆. 什么是混淆 关于混淆维基百科上该词条的解释为 代码混淆(Obfuscated code)亦称花指令, ...
- 读懂 Android 中的代码混淆
在Android开发工作中,我们都或多或少接触过代码混淆.比如我们想要集成某个SDK,往往需要做一些排除混淆的操作. 本文为本人的一些实践总结,介绍一些混淆的知识和注意事项.希望可以帮助大家更好的学习 ...
- Android 中的代码混淆
在Android开发工作中,我们都或多或少接触过代码混淆.比如我们想要集成某个SDK,往往需要做一些排除混淆的操作. 本文为本人的一些实践总结,介绍一些混淆的知识和注意事项.希望可以帮助大家更好的学习 ...
- Android NDK jni开发,适当的给Android 代码加密
为什么使用ndk开发了,就是 稍微将代码隐藏一下..Android 虽然打包能混淆,但是有些东西是不能混淆的,如下图,压缩密码把直勾勾的下载代码中.下面手把手稍微优化下. 將操作密码的部分我们通过 j ...
最新文章
- Ubuntu命令行连接wifi热点
- java handler类_java——Handler类
- poj 3692(二分图匹配--最大独立集)
- WinFormsUI(转xiaisidinen)
- C++中的union(联合体,共用体,数据变量可以共享内存,以节省内存空间)
- 跨域加了header也解决不了?
- mybatis传入map参数parameterType
- word文字中带有数学公式的行间距设置
- 本地安装Docker
- C语言 数组排序 – 插入法排序 - C语言零基础入门教程
- @Transient注解作用
- 金额转换java_java金额转换
- PostgresException: 42883: function ifnull(integer, integer) does not exist
- 安装SQL SERVER 2000遇到的二个问题
- 如何在excel中打钩
- php获取微信uninoid_微信公众号如何根据unionid获取到openid?
- 令牌环桶算法的使用案例
- air202c语言编程,Air202学习 五
- hive从入门到放弃(一)——初识hive
- 系统架构师笔记——数据库