Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android

09-11 19:17:47.707 E/AndroidRuntime( 2980): FATAL EXCEPTION: main
09-11 19:17:47.707 E/AndroidRuntime( 2980): Process: com.android.phone, PID: 2980
09-11 19:17:47.707 E/AndroidRuntime( 2980): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.phone/com.android.phone.settings.fdn.FdnSetting}: android.view.InflateException: Binary XML file line #20: Error inflating class com.android.phone.settings.fdn.EditPinPreference
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2891)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2969)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at android.app.ActivityThread.-wrap11(Unknown Source:0)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1658)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at android.os.Handler.dispatchMessage(Handler.java:108)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at android.os.Looper.loop(Looper.java:206)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at android.app.ActivityThread.main(ActivityThread.java:6730)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at java.lang.reflect.Method.invoke(Native Method)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:845)
09-11 19:17:47.707 E/AndroidRuntime( 2980): Caused by: android.view.InflateException: Binary XML file line #20: Error inflating class com.android.phone.settings.fdn.EditPinPreference
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at android.preference.GenericInflater.createItem(GenericInflater.java:372)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at android.preference.GenericInflater.createItemFromTag(GenericInflater.java:416)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at android.preference.GenericInflater.rInflate(GenericInflater.java:467)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at android.preference.GenericInflater.inflate(GenericInflater.java:300)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at android.preference.GenericInflater.inflate(GenericInflater.java:237)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at android.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:254)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at android.preference.PreferenceActivity.addPreferencesFromResource(PreferenceActivity.java:1410)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at com.android.phone.settings.fdn.FdnSetting.onCreate(FdnSetting.java:532)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at android.app.Activity.performCreate(Activity.java:6975)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2844)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     ... 9 more
09-11 19:17:47.707 E/AndroidRuntime( 2980): Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet]
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at java.lang.Class.getConstructor0(Class.java:2320)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at java.lang.Class.getConstructor(Class.java:1725)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     at android.preference.GenericInflater.createItem(GenericInflater.java:363)
09-11 19:17:47.707 E/AndroidRuntime( 2980):     ... 19 more

检查代码:
1.自定义控件在xml文件中引用,看看应用方法是否有问题
2.由于是xml中引用,在控件自定义类中应该定义构造如下方法,检查构造方法的可见域是否为public

    public AccountSelectionPreference(Context context) {
        this(context, null);
    }

    public AccountSelectionPreference(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

3.检查1和2后,都没有问题,但就是找不到构造方法,意外发现是模块代码默认打开了混淆编译,而proguard.flags文件中并未–keep报错的类,因此java在反射查找自定义类的构造方法时提示NoSuchMethodException异常
4.修改方法是在模块.mk文件中配置LOCAL_PROGUARD_ENABLED := disabled关闭混淆或在proguard.flags中–keep具体的类

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值