我只在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) 我的应用程序在 21 之前崩溃并java.lang.NoClassDefFoundError app.module.SomeClass出现错误。
我已经启用了 Multidex:
构建.gradle:
android {
defaultConfig {
...
multiDexEnabled true
}
}
dependencies {
...
implementation "androidx.multidex:multidex:2.0.1"
}
Run Code Online (Sandbox Code Playgroud)
我的应用程序类:
class App : DaggerApplication() {
...
override fun attachBaseContext(base: Context) {
super.attachBaseContext(base)
MultiDex.install(this)
}
Run Code Online (Sandbox Code Playgroud)
在阅读了主 DEX 文件中所需的声明类之后,我创建了multidex-config.pro文件以包含app.module.**在主 DEX 文件中:
-keep class app.module.** { *; }
Run Code Online (Sandbox Code Playgroud)
并在 build.gradle 中注册:
android {
buildTypes {
debug {
...
multiDexKeepProguard file('multidex-config.pro')
}
}
Run Code Online (Sandbox Code Playgroud)
我通过检查build/intermediates/legacy_multidex_main_dex_list/debug/mainDexList.txt和分析调试 apk(检查是否classes.dex包含app.module.SomeClass)来确认它。
但我仍然收到java.lang.NoClassDefFoundError …