异常java.lang.NoClassDefFoundError:pim

异常java.lang.NoClassDefFoundError:pim,java,android,firebase,android-recyclerview,firebase-crash-reporting,Java,Android,Firebase,Android Recyclerview,Firebase Crash Reporting,我在事故报告中看到了这起事故: Exception java.lang.NoClassDefFoundError: pim pil.<clinit> (SourceFile:2) pij.onAnimationEnd (SourceFile:10) android.animation.AnimatorSet$AnimatorSetListener.onAnimationEnd (AnimatorSet.java:818) android.animation.ValueAnim

我在事故报告中看到了这起事故:

Exception java.lang.NoClassDefFoundError: pim
pil.<clinit> (SourceFile:2)
pij.onAnimationEnd (SourceFile:10)
android.animation.AnimatorSet$AnimatorSetListener.onAnimationEnd     (AnimatorSet.java:818)
android.animation.ValueAnimator.endAnimation (ValueAnimator.java:1056)
android.animation.ValueAnimator.access$400 (ValueAnimator.java:50)
android.animation.ValueAnimator$AnimationHandler.doAnimationFrame     (ValueAnimator.java:644)
android.animation.ValueAnimator$AnimationHandler.run (ValueAnimator.java:660)
android.view.Choreographer$CallbackRecord.run (Choreographer.java:761)
android.view.Choreographer.doCallbacks (Choreographer.java:574)
android.view.Choreographer.doFrame (Choreographer.java:543)
android.view.Choreographer$FrameDisplayEventReceiver.run     (Choreographer.java:747)
android.os.Handler.handleCallback (Handler.java:733)
android.os.Handler.dispatchMessage (Handler.java:95)
android.os.Looper.loop (Looper.java:136)
android.app.ActivityThread.main (ActivityThread.java:5154)
java.lang.reflect.Method.invokeNative (Method.java)
java.lang.reflect.Method.invoke (Method.java:515)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run     (ZygoteInit.java:732)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:566)
dalvik.system.NativeStart.main (NativeStart.java)
这是我的自定义recyclerview,但即使是常规的recyclerview(不是我的自定义)也会出现此错误

下面是我的customview的代码:

public class MyRecyclerView extends RecyclerView {
private FirebaseAnalytics mFirebaseAnalytics = null;

public MyRecyclerView(Context context) {
    super(context);
    if (mFirebaseAnalytics == null && context != null) {
        mFirebaseAnalytics = FirebaseAnalytics.getInstance(context);
    }
}

public MyRecyclerView(Context context, @Nullable AttributeSet attrs) {
    super(context, attrs);
    if (mFirebaseAnalytics == null && context != null) {
        mFirebaseAnalytics = FirebaseAnalytics.getInstance(context);
    }
}

public MyRecyclerView(Context context, @Nullable AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    if (mFirebaseAnalytics == null && context != null) {
        mFirebaseAnalytics = FirebaseAnalytics.getInstance(context);
    }
}


@Override
protected void onAnimationEnd() {
    try {
        super.onAnimationEnd();
    }
    catch (Exception e) {
        Log.d("erez", "animation onAnimationEnd");
        if (mFirebaseAnalytics != null && e != null && e.getMessage() != null) {
            Bundle bundleCatch = new Bundle();
            bundleCatch.putString(FirebaseAnalytics.Param.ITEM_ID, "myrecycleview e: " + e.getMessage());
            bundleCatch.putString(FirebaseAnalytics.Param.ITEM_NAME, "myrecycleview e: " + e.getMessage());
            bundleCatch.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "onAnimationEnd catched");

        mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundleCatch);
        }
    }
    catch (NoClassDefFoundError ncdfe) {
        if (mFirebaseAnalytics != null && ncdfe != null && ncdfe.getMessage() != null) {
            Bundle bundleCatch = new Bundle();
            bundleCatch.putString(FirebaseAnalytics.Param.ITEM_ID, "myrecycleview ncdfe: " + ncdfe.getMessage());
            bundleCatch.putString(FirebaseAnalytics.Param.ITEM_NAME, "myrecycleview ncdfe: " + ncdfe.getMessage());
            bundleCatch.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "onAnimationEnd catched");
          mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundleCatch);
        }
    }
}
}

如您所见,我正试图覆盖onAnimationEnd的,以便将捕获日志写入firebase,但它没有在firebase中捕获,并且仍然会对用户造成崩溃

无论如何,此MyRecyclerView是作为我活动中的一名成员持有的:

我通过findViewById设置它,然后:

LinearLayoutManager layoutManager = new LinearLayoutManager(Player.this);
    if (mScreenOrientation == Configuration.ORIENTATION_PORTRAIT) {
        layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
    } else if (mScreenOrientation == Configuration.ORIENTATION_LANDSCAPE) {
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    }
    mRecycleViewPreviewedVideos.setLayoutManager(layoutManager);
然后我设置了它的适配器,就像用户在这里看到的那样。没什么特别的。 我知道View有一个名为onAnimationEnd的方法,但它从未在我的智能手机中出现。它主要是在Api 19上实现的。(以及第17条和第18条)

有人经历过这次车祸吗?如何修复它?

更新
我在这里报告了这个错误:

所以我向谷歌报告了这个问题,现在他们回答说这个错误已经修复了!:-)我猜不需要库更新,因为没有可用的更新。此外,我还尝试使用YouTube API的库,但与该库的关系出现了同样的崩溃谷歌写信给我:“开发团队已经解决了您报告的问题,它将在未来的构建中提供。”

面临同样的问题。无法识别来源。你也在使用Youtube视频吗?在过去的2-3天内,崩溃的数量增加了。是的,我正在使用YouTube视频,在过去的2-3天内,崩溃的数量增加到了数百:-\API 19上出现的最多。如果我找到了解决方案,我会把它贴在这里,请也这样做。你是否为你的应用上传了新版本?因为我这样做了,但后来我恢复了版本,它一直在发生。这太令人沮丧了:(也发生在这里。几天前开始(具体来说是月初)没有发布任何新的更新。除了应用程序中的多个SDK外,我们还有YouTube视频,这使得很难识别来源。您是否使用任何广告网络?任何其他SDK都可能导致此问题?YouTube player也会出现同样的问题。如果我将设备上的YouTube player降级为出厂版本,视频播放效果良好,但随着最新版本的升级,它在我的应用程序上随机崩溃了50%。这已经成为过去2天以来的最大崩溃,从2月1日开始缓慢增加,堆栈跟踪也是如此!此处相同。在API 19上崩溃。Youtube应用程序版本13.04.55。在重置为出厂版本5.5.27后,工作正常。是的,我也得到了相同的反馈,是d吗一个在2月13日。虽然未来的构建时间表尚未更新,但将尝试获取该更新并在此处发布。我猜他们可能会在2月底之前发布此修复。这很糟糕,但至少它已修复。我们必须在修复发生后发布新版本的应用程序,或者它仅反映在用户的设备上。此处相同。32崩溃日志记录此信息一周后,youtube用户将无法使用。我99.9%确信我们不必发布修复程序,因为这是谷歌的一个版本。我们只需要耐心。直到月底,它都会被修复。如果youtube用户遇到这个错误,谷歌会立即发布这个版本,这让人恼火。至少它是修复的,所以我知道它是如何工作的关于大公司的建设,你可以冷静地说,这次崩溃将在本月结束
LinearLayoutManager layoutManager = new LinearLayoutManager(Player.this);
    if (mScreenOrientation == Configuration.ORIENTATION_PORTRAIT) {
        layoutManager.setOrientation(LinearLayoutManager.HORIZONTAL);
    } else if (mScreenOrientation == Configuration.ORIENTATION_LANDSCAPE) {
        layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
    }
    mRecycleViewPreviewedVideos.setLayoutManager(layoutManager);