• Android 工程混淆后无法找到自定义控件类的解决方案


    在混淆里keep忽略掉这些类的父类!比如:

    Android 工程混淆后报出如下错误:

    10-19 13:26:19.750: E/AndroidRuntime(13654): Caused by: android.view.InflateException: Binary XML file line #193: Error inflating

    … …

    E/AndroidRuntime(13480): Caused by: java.lang.ClassNotFoundException:

    xml文件中自定义了下面一个插件:


    对应的View实现定义如下:


    解决方案:

    android在用proguard混淆时,一般情况下使用系统自带的配置文件就可以保持大部分外部需要引用的类,比如Activity,view扩展等等,但是在本项目的proguard文件中没有保存AppPicsGallery所引用的Gallery类,所以要在proguard.cfg文件中加入 

     

    -keep public class * extends android.widget.Gallery{

        public *;

    }

     

    另外,有些情况下一些引入的外部lib,如果被混淆也会出现各种各样的问题,如果不想混淆这些包,就要加上

    -keep class packagename.** {*;}

    这样就能完整保持原有class了。

    Conquer Android开发者群95426703,Q:1532507234, 1532507234@qq.com,
  • 相关阅读:
    java-数组
    编程练习
    java-循环语句
    java-条件语句if&switch
    JAVA-运算符
    JAVA-常量
    springAOP源码分析之篇一:配置文件的解析
    spring IOC容器的扩展
    spring IOC之篇六 bean的加载---bean的创建
    spring IOC之篇五 bean的加载--缓存中获取
  • 原文地址:https://www.cnblogs.com/renkangke/p/3084756.html
Copyright © 2020-2023  润新知