AndroidStudio SDK开发和APP开发混淆经验整理

本文介绍了APP和SDK层混淆的最佳实践,包括常见的错误记录及解决办法。探讨了如何避免混淆过程中遇到的问题,如重复的输入jar包、依赖冲突等,并提供了具体的配置建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SDK层混淆

SDK开发者不能把你对开发者提供的接口进行混淆混淆

 

 

APP层混淆

程序中用到的所有第三方的库都不能混淆
数据库操作的对应类也不能混淆

 

 

出错记录

Error:Execution failed for task ':faceToFace:transformClassesAndResourcesWithProguardForDebug'.
> java.io.IOException: The same input jar [
C:\Users\pactera\Desktop\20160831\FaceToFace\faceToFace\libs\fastjson-1.2.6.jar] is specified twice.

 在使用-libraryjars libs/...的时候  
就会出现这样的错误,这是应为在android studio中,他已经默认将jar包不进行混淆了,如果你再加入的话就twice

 

 
 Error:Execution failed for task ':faceToFace:transformClassesAndResourcesWithProguardForDebug'.
> java.io.IOException: Please correct the above warnings first.

Warning:a.m: can't find referenced class java.nio.file.OpenOption

 nio问题是okio混淆了

 

 Warning:u.aly.bt: can't find referenced method 'int checkSelfPermission(java.lang.String)' in library class android.content.Context

 

代码中使用到了检查权限的方法
compileSdkVersion 23
 
编译环境改为23如果使用了httpClient的一些方法,就会出错
因为Android6.0中移除了httpClient请求网络库
需要在对应的build.gradle中的语句块内添加下面的语句
android {
   .....
    useLibrary 'org.apache.http.legacy'
}
 
dependencies {
	.......  
    compile 'org.apache.httpcomponents:httpcore:4.4.2'
}
 


APP混淆后运行报错,提示dbutils.find(Contact.class) 里的Contact类的id字段找不到

我们的APP代码中如果有数据库操作

就不能混淆这个类

-keep class 包名.domain.Contact { *;}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值