先写最终解决办法

-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相关推荐

  1. Android笔记:防反编译、代码混淆中,解决第三方jar包不被混淆的一些心得,及gson防混淆方法...

    为了防止代码被反编译,一般在签名导出前需要对代码进行混淆.最近发现自己的一个项目工程在代码混淆后,使用中出现了异常.以下是自己这几天在解决代码混淆以及引入第三方jar包导致混淆出现的问题处理的一些心得 ...

  2. eclipse java混淆打包,Android Studio和eclipse混淆打包总结

    最近项目有点闲,考虑到以前的项目没有做过混淆,只是用了加固软件进行加固,为了安全性,准备给项目加上,这里做个总结,都经本人亲自在项目实践,说是为了安全性,这好像说大了,一来项目中没用到什么特别的技术, ...

  3. Android项目:proguard混淆之常见开源项目混淆配置

    1.Gson混淆 ## ---------------------------------- ## ########## Gson混淆 ########## ## ------------------ ...

  4. Android系统JNI的实现方式

     Android系统JNI的实现方式 All rights reserved JNI(Java Native Interface)定义了一种Java代码调用C或者C++代码等其它代码的方式. 在A ...

  5. [转]Android 项目的代码混淆,Android proguard 使用说明

    简介 Java代码是非常容易反编译的.为了很好的保护Java源代码,我们往往会对编译好的class文件进行混淆处理. ProGuard是一个混淆代码的开源项目.它的主要作用就是混淆,当然它还能对字节码 ...

  6. android代码混淆作用,Android分享:代码混淆那些事

    1) 前言 ProGuard是一个开源的Java代码混淆器.它可以混淆Android项目里面的java代码,对的,你没看错,仅仅是java代码.它是无法混淆Native代码,资源文件drawable. ...

  7. 读懂Android中的代码混淆

    本文为本人的一些实践总结,介绍一些混淆的知识和注意事项.希望可以帮助大家更好的学习和使用代码混淆. 什么是混淆 关于混淆维基百科上该词条的解释为 代码混淆(Obfuscated code)亦称花指令, ...

  8. 读懂 Android 中的代码混淆

    在Android开发工作中,我们都或多或少接触过代码混淆.比如我们想要集成某个SDK,往往需要做一些排除混淆的操作. 本文为本人的一些实践总结,介绍一些混淆的知识和注意事项.希望可以帮助大家更好的学习 ...

  9. Android 中的代码混淆

    在Android开发工作中,我们都或多或少接触过代码混淆.比如我们想要集成某个SDK,往往需要做一些排除混淆的操作. 本文为本人的一些实践总结,介绍一些混淆的知识和注意事项.希望可以帮助大家更好的学习 ...

  10. Android NDK jni开发,适当的给Android 代码加密

    为什么使用ndk开发了,就是 稍微将代码隐藏一下..Android 虽然打包能混淆,但是有些东西是不能混淆的,如下图,压缩密码把直勾勾的下载代码中.下面手把手稍微优化下. 將操作密码的部分我们通过 j ...

最新文章

  1. Ubuntu命令行连接wifi热点
  2. java handler类_java——Handler类
  3. poj 3692(二分图匹配--最大独立集)
  4. WinFormsUI(转xiaisidinen)
  5. C++中的union(联合体,共用体,数据变量可以共享内存,以节省内存空间)
  6. 跨域加了header也解决不了?
  7. mybatis传入map参数parameterType
  8. word文字中带有数学公式的行间距设置
  9. 本地安装Docker
  10. C语言 数组排序 – 插入法排序 - C语言零基础入门教程
  11. @Transient注解作用
  12. 金额转换java_java金额转换
  13. PostgresException: 42883: function ifnull(integer, integer) does not exist
  14. 安装SQL SERVER 2000遇到的二个问题
  15. 如何在excel中打钩
  16. php获取微信uninoid_微信公众号如何根据unionid获取到openid?
  17. 令牌环桶算法的使用案例
  18. air202c语言编程,Air202学习 五
  19. hive从入门到放弃(一)——初识hive
  20. 系统架构师笔记——数据库

热门文章

  1. Oracle ORA-00119和ORA-00132的解决方案
  2. javascript一维数组的排序
  3. Http和Https网络同步请求httpclient和异步请求async-http-client
  4. 解决表格td宽度设置失效问题
  5. Python中流程控制-for循环(序列/字典举例)
  6. Pandas python
  7. spring 注入 list和map及enum映射
  8. 现代浏览器(HTML5)缓存接口文档收集
  9. SublimeLinter 3中使用jshint
  10. Citrix Xendesktop虚拟化桌面和深信服VSP安全桌面的技术对比