NoSuchMethodException:< init>[类android.view.View]生成签名后的apk

编程入门 行业动态 更新时间:2024-10-11 09:23:35
本文介绍了NoSuchMethodException:< init>[类android.view.View]生成签名后的apk的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我不知道为什么 NoSuchMethodException 在应用程序中发生.我正在使用firebase auth +数据库.我正在使用 FirebaseRecyclerAdapter 将数据填充到recyclerview中.我正在尝试通过遵循此答案,但尚无法实现.

I don't know why NoSuchMethodException is happening in the app. I am using firebase auth + database. I am populating data to recyclerview with FirebaseRecyclerAdapter .I am trying to solve this exception by following this answer but cannot make it possible yet.

公共类PostViewHolder扩展了RecyclerView.ViewHolder {...}

如果我使用该应用程序的调试版本,则可以完美运行而不会崩溃.但是在创建Signed apk应用后,每次都会崩溃.我正在使用Firebase崩溃报告,在其中获得此 Logcat:

If I use debug version of the app it works perfectly without crashing. But after creating Signed apk app crashed every time. I am using firebase crash reporting in which I am getting this Logcat :

Exception java.lang.RuntimeException: java.lang.NoSuchMethodException: <init> [class android.view.View] com.b.a.a.b.a () android.support.v7.widget.RecyclerView$a.b () android.support.v7.widget.RecyclerView$o.a () android.support.v7.widget.RecyclerView$o.a () android.support.v7.widget.RecyclerView$o.c () android.support.v7.widget.LinearLayoutManager$c.a () android.support.v7.widget.LinearLayoutManager.a () android.support.v7.widget.LinearLayoutManager.a () android.support.v7.widget.LinearLayoutManager.c () android.support.v7.widget.RecyclerView.M () android.support.v7.widget.RecyclerView.p () android.support.v7.widget.RecyclerView.c () android.support.v7.widget.RecyclerView$1.run () android.view.Choreographer$CallbackRecord.run (Choreographer.java:767) android.view.Choreographer.doCallbacks (Choreographer.java:580) android.view.Choreographer.doFrame (Choreographer.java:549) android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:753) android.os.Handler.handleCallback (Handler.java:739) android.os.Handler.dispatchMessage (Handler.java:95) android.os.Looper.loop (Looper.java:135) android.app.ActivityThread.main (ActivityThread.java:5233) java.lang.reflect.Method.invoke (Method.java) java.lang.reflect.Method.invoke (Method.java:372) com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:898) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:693) Caused by java.lang.NoSuchMethodException: <init> [class android.view.View] java.lang.Class.getConstructor (Class.java:531) java.lang.Class.getConstructor (Class.java:495) com.b.a.a.b.a () android.support.v7.widget.RecyclerView$a.b () android.support.v7.widget.RecyclerView$o.a () android.support.v7.widget.RecyclerView$o.a () android.support.v7.widget.RecyclerView$o.c () android.support.v7.widget.LinearLayoutManager$c.a () android.support.v7.widget.LinearLayoutManager.a () android.support.v7.widget.LinearLayoutManager.a () android.support.v7.widget.LinearLayoutManager.c () android.support.v7.widget.RecyclerView.M () android.support.v7.widget.RecyclerView.p () android.support.v7.widget.RecyclerView.c () android.support.v7.widget.RecyclerView$1.run () android.view.Choreographer$CallbackRecord.run (Choreographer.java:767) android.view.Choreographer.doCallbacks (Choreographer.java:580) android.view.Choreographer.doFrame (Choreographer.java:549) android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:753) android.os.Handler.handleCallback (Handler.java:739) android.os.Handler.dispatchMessage (Handler.java:95) android.os.Looper.loop (Looper.java:135) android.app.ActivityThread.main (ActivityThread.java:5233) java.lang.reflect.Method.invoke (Method.java) java.lang.reflect.Method.invoke (Method.java:372) com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:898) com.android.internal.os.ZygoteInit.main (ZygoteInit.java:693)

我的代码有什么问题,每件事在调试版本中都可以正常工作,但是打开后已签名的应用程序崩溃了.

What is wrong with my code every thing worked fine in debug version but signed app crashed when open.

推荐答案

这是因为ProGuard混淆了您的APK,使黑客更难对您的APK进行反向工程.如果您认为不需要混淆,请在gradle配置中进行更改:

This is because ProGuard is obfuscating your apk to make it harder for hackers to reverse-engineering your apk. If you think obfuscation is not needed, change this in your gradle configuration:

minifyEnabled false

或者,您可以使用以下方法让ProGuard跳过对支持库的混淆:

Alternatively, you can let ProGuard skip obfuscation of the support libraries by using this:

minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'

添加文件 proguard-rules.txt 并尝试添加以下行:

Add a file proguard-rules.txt and try adding these lines:

-keep class android.support.v7.internal.** { *; } -keep interface android.support.v7.internal.** { *; } -keep class android.support.v7.** { *; } -keep interface android.support.v7.** { *; }

更多推荐

NoSuchMethodException:&lt; init&gt;[类android.view.View]生成签名后的apk

本文发布于:2023-11-25 06:37:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1628698.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:lt   init   NoSuchMethodException   amp   gt

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!