问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

android项目中加入zxing,混淆打包出错,求解决

发布网友 发布时间:2022-04-23 13:40

我来回答

1个回答

热心网友 时间:2023-07-07 06:52

写在视图xml中的onClick响应出错. 因为写在xml中的onClick是通过反射调用的, proguard认为它们没有在代码中被调用过, 所以将它们从代码中除掉或改名了. 解决方法:
在proguard.cfg中添加以下代码, 就可以防止被配在视图xml中的onClick方法被proguard优化掉
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}123123

jni反调Java方法
这些类或方法同样可能会被proguard认为没有调用过而被除掉, 或都被改名. 这些方法最好统一写在一个类中, 然后这个类不作优化, 或是找出所有jni调用过的类与方法, 在proguard.cfg中配置, 不对它们作优化
其它反射调用的java类与方法
使用反射时一定要注意proguard可能会认为那些方法未被调用过, 会在代码优化过程中将它们改名或除去. 在使用反射的地方一定要在proguard.cfg中配置, 不优化反射调用过的类和方法
最后在proguard优化过后会产生一些文件
mp.txt – 描述.apk文件中所有类文件间的内部结构
mapping.txt – 列出了原始的类,方法和字段名与混淆后代码间的映射。这个文件很重要,当你从release版本中收到一个bug报告时,可以用它来翻译被混淆的代码。
seeds.txt – 列出了未被混淆的类和成员
usage.txt – 列出了从.apk中删除的代码
要注意分析mapping.txt与usage.txt看xml视图中写的onClick响应函数, jni调用到的java类与方法, 反射调用过的类与方法是否被混淆或重命名
-keep class com.badlogic.gdx.backends.Android.**{ *;}
的只是不混淆:这个包下的类(不包括子包里的东西),用到一个第三文的类就要把这个类所在的包,像上面加上
还要注意的是android-support-v4.jar这个包问题,这里加上了对这个jar包的处理
第三方jar的混淆,
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*

-keep public class * extends android.app.Activity // 继承activity,application,service,broadcastReceiver,contentprovider....不进行混淆
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService123456789101112131415123456789101112131415
-libraryjars /libs/android-support-v4.jar
-libraryjars /libs/gdx-backend-android.jar
-libraryjars /libs/gdx.jar123123
// 这里不对第三方的jar包的提出WARN
-dontwarn com.badlogic.**
-dontwarn android.support`这里写代码片`.v4.**
-dontwarn android.support.v4.view.**12341234
// 这里对第三方jar包的类不进行混淆
-keep class com.badlogic.gdx.backends.android.**{ *;}
-keep class com.badlogic.gdx.**{ *;}
-keep class com.badlogic.gdx.graphics.g2d.**{ *;}
-keep class com.badlogic.gdx.graphics.**{ *;}
-keep class android.support.v4.view.**{ *;}123456123456
// 这里第三方JAR包处理结束
-keepclasseswithmembernames class * { // natvie 方法不混淆
native ;
} 12341234
-keepclasseswithmembers class * {
// 对于所有类,有这个构造函数不进行混淆,主要是为了在layout中的,自定义的view
public (android.content.Context, android.util.AttributeSet);
} 12341234
-keepclasseswithmembers class * {
public (android.content.Context, android.util.AttributeSet, int);
} 123123
-keepclassmembers class * extends android.app.Activity {
// 这个主要是在layout 中写的onclick方法android:onclick="onClick",不进行混淆
public void *(android.view.View);
} 12341234
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
} 12341234
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
...经常大量出汗,怕风扇吹明天还要上班有什么招可以治 桑葚泡酒需要注意什么 小寒节气的特点和风俗-签证资讯 小寒是什么意思小寒有什么风俗习惯 2010年世界杯八强是哪些? 如何打消新能源车主购/用车痛点? 小寒的寓意和象征是什么 小寒节气到来意味着啥 学园艺专业的大专生是否能报考公务员 离婚后不给子女抚养费怎么办 民法典规定离婚后不给抚养费应怎么办 男朋友的妈妈有什么问题经常问我的意见,是不是接受我了? 车辆购置税在别人手机上可以交吗 android backtrace 怎么确定oat文件的出错位置 男朋友叫我抽烟,我是抽还是不抽好, 男朋友妈妈经常问我们的感情是不是真的? android调用so(jni)需要在AndroidManifest.xml中声明权限吗,比如通过jni发送短信、读取imei等。 男朋友爸爸知道我抽烟很不开心,该分手吗? android proguard 混淆后gson解析数据一直为null 和男友在一起五年了,今天他妈妈突然问他我们还在不在一起是怎么回事? 男朋友妈妈向我告状男朋友在房间抽烟 我该怎么说? Android如何调用反编译得到的so 如果自己的男朋友问自己抽不抽烟代表什么 android怎么在个应用通过反射调用其它应用中的方法/修改变量值等?每次都报ClassNotFo 早上被男朋友妈妈发现在厕所抽烟,我和男朋友已经订婚了,他妈妈一直对我很好的,但是感觉今天不怎么好了 手机调试Android程序出异常时不打印堆栈信息 被男友妈妈发现抽烟怎么办? Android studio 开发app,如何抵抗动态调试,反调试代码怎么写?请写上详细代码。 男朋友妈妈不喜欢我抽烟,他让我戒烟。我每天傍晚都会和他视频,今天他说不要和我视频,因为他妈 android反调试技术有哪些 男朋友的母亲发现我抽烟,让他不再跟我来往。 当男朋友问你我可以抽烟吗我回答了的意思是你可以可是她突然不理你了是什么意? 我的世界安卓版怎么调控制方向?(一直是反方向的) 请问在手机上交汽车购置税需要先下载什么软件? 男友告诉我妈我抽烟,这是我和男友的聊天记录。我这样说可不可以? android反编译生成的代码如下 像MainActivity.access$000(this.this$0);这样的代码该怎样解释,怎么改 一个男的问你男朋友抽不抽烟? 怎么下载《车辆购置税纳税申报系统(V2.0)》软件 android 怎么进行反编译 Android 如何对apk文件进行反编译以及重新 android反编译之后怎么更快的看懂代码 饺子的包法,请给出具体步骤 怎么用手机抖音直播电脑上的内容? 社区三社是哪三社 抖音怎么一边手机直播一边电脑上衔接 社区的社区类型 华为手机扫描文字变成文档 社区的社是不是大队的意思 社区的社保包括哪些内容 扫描后如何把文字转换成 WORD文档? 社区的类型
  • 焦点

最新推荐

猜你喜欢

热门推荐