zoukankan      html  css  js  c++  java
  • 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,
  • 相关阅读:
    bootstrap学习(全局CSS样式)(二)
    第八周
    bootstrap学习(全局CSS样式)(一)
    变量的解构赋值 ES6
    ES6的let和const命令
    github之怎么上传本地项目
    浅谈js对象及对象属性
    解决sublime text3 文件名,小框框的办法
    web04--cookie
    web03--session
  • 原文地址:https://www.cnblogs.com/renkangke/p/3084756.html
Copyright © 2011-2022 走看看