相关疑难解决方法(0)

RuntimeException:ClassNotFoundException android.arch.lifecycle.ProcessLifecycleOwnerInitializer

我只在Android SDK <5.0上收到此错误.所以4.0,4.2,4.3等.运行Android 5.0+的任何东西都能完美运行.有任何想法吗?发射时崩溃.

按照本指南进行设置 - > https://developer.android.com/topic/libraries/architecture/adding-components.html

App.java

public void onCreate() {
    super.onCreate();

    ProcessLifecycleOwner.get().getLifecycle().addObserver(new AppLifecycleListener(this));
    registerActivityLifecycleCallbacks(this);
}
Run Code Online (Sandbox Code Playgroud)

AppLifecycleListener.java

public class AppLifecycleListener implements LifecycleObserver {
private App app;

public AppLifecycleListener(App app)
{
    this.app = app;
}

@OnLifecycleEvent(Lifecycle.Event.ON_START)
public void onMoveToForeground() {
    if (app.getCurrentActivity() instanceof BaseActivity)
    {
        BaseActivity baseActivity = (BaseActivity) app.getCurrentActivity();
        baseActivity.runIsAPIVersionCheck();
        baseActivity.fetchObjectsWithHUD(false);
    }
}

@OnLifecycleEvent(Lifecycle.Event.ON_STOP)
public void onMoveToBackground() {}
Run Code Online (Sandbox Code Playgroud)

}

摇篮

compileSdkVersion 26

dexOptions {
    javaMaxHeapSize "4g"
}

defaultConfig {
    applicationId "app"
    minSdkVersion 16
    targetSdkVersion 26
    versionCode 71
    versionName …
Run Code Online (Sandbox Code Playgroud)

android android-lifecycle android-support-library

13
推荐指数
2
解决办法
6982
查看次数

ClassNotFoundException:“androidx.work.impl.WorkManagerInitializer”

Google AdMob Ads 库版本 19.4.0 升级到 19.5.0 后,部分设备上出现了新的异常:

Caused by java.lang.ClassNotFoundException 
Didn't find class "androidx.work.impl.WorkManagerInitializer" on path: ...
dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:196)
androidx.core.app.CoreComponentFactory.instantiateProvider (CoreComponentFactory.java)
android.app.ActivityThread.installProvider (ActivityThread.java:7213)
android.app.ActivityThread.installContentProviders (ActivityThread.java:6769)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:941)
Run Code Online (Sandbox Code Playgroud)

该异常出现在 Android 8 和 10 的设备上。

AdMob 库 19.5.0 添加了对 WorkManager 2.1.0 的依赖项(通过 Play Services Ads Lite 库): https://mvnrepository.com/artifact/com.google.android.gms/play-services-ads-lite/19.5.0

在这个问题上有一个类似的问题,但它似乎是无关的(较旧的Android操作系统版本具有多个dex,而这里是单个dex和较新的操作系统版本)。

目前我降级到 AdMob 19.4.0,其中不包含 WorkManager 依赖项。

更新(2020.12.18)

  • 异常频率为每 1000 台运行 Android 10 的设备 1 次。
  • 强制使用 WorkManager 2.4.0(而不是 2.1.0)也会生成异常。
  • 该问题与 AdMob 无关。使用 AdMob 19.4.0 将 WorkManager 添加到项目中重现了该问题。
  • 我目前的假设是,该问题是由 AudienceNetwork 和 WorkManager …

android admob facebook-audience-network android-workmanager

11
推荐指数
2
解决办法
7549
查看次数