Android java.lang.RuntimeException:无法实例化应用程序。ClassNotFoundException:未找到类

Android java.lang.RuntimeException:无法实例化应用程序。ClassNotFoundException:未找到类,android,firebase,gradle,android-multidex,Android,Firebase,Gradle,Android Multidex,我知道这个问题已经被问过无数次了,但我找不到我的具体情况的答案。我有一个包含所有代码的库,还有几个导入库的其他模块 -project --mylibrary ---sr/main/java ----co/android/mylibrary ----BaseApp (extends MultidexApp) --Application1 ---sr/main/java ----co/android/app2 -----Android Manifest --Application2 ---sr/ma

我知道这个问题已经被问过无数次了,但我找不到我的具体情况的答案。我有一个包含所有代码的库,还有几个导入库的其他模块

-project
--mylibrary
---sr/main/java
----co/android/mylibrary
----BaseApp (extends MultidexApp)
--Application1
---sr/main/java
----co/android/app2
-----Android Manifest
--Application2
---sr/main/java
----co/android/app2
-----Android Manifest
两个清单都像这样使用基本应用程序

<application
    android:name="co.android.mylibrary.BaseApp"
    android:allowBackup="false"
    android:fullBackupContent="false"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:largeHeap="true"
    android:theme="@style/AppTheme"
    tools:replace="android:icon,android:theme, android:allowBackup">
My base app初始化多索引的方法:

protected void attachBaseContext(Context base) {   
    super.attachBaseContext(base);
    try {
      MultiDex.install(this);
    }catch (RuntimeException e){}
}
我在库和应用程序的两个位置都添加了一些proguard规则。这些不包括第三方库的一些规则和我自己的一些类

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.view.View 
-keep public class co.android.mylibrary.data.greendao.**{ *; }
因此,该应用程序在我的s8上运行良好,但在某些手机(如moto G)上运行不正常。如果启用Proguard并减少其资源(如发布版本),它们也会运行良好。我注意到的另一个奇怪的行为是,当我在代码的某些部分上设置断点并在可调试设置为true的情况下运行发布版本时,它会在s8上中断,但在moto上不会

为什么会有这种奇怪的行为?我发现的另一个超级相似的问题是。但仍然没有解决方案

这是错误的完整日志。忽略包名。

编辑

根据@Mostafa-Anter的建议,改变了我在应用程序上编译库的方式后:

compile project(path: ':mylibrary', configuration: 'debug')
它开始给我这个错误。我的即时跑步功能已关闭

使基类扩展应用程序 然后在onCreate方法内部调用这个lineMultiDex.installthis

修改模块级build.gradle文件以启用multidex,并将multidex库添加为依赖项,如下所示:

android {
defaultConfig {
    ...
    minSdkVersion 15 
    targetSdkVersion 26
    multiDexEnabled true
}
...
}

dependencies {
    compile 'com.android.support:multidex:1.0.1'
}

如果您使用JavaVersion.VERSION_1_8,请确保在所有模块中都使用它

android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

能否显示ClassNotFoundException的logcat详细信息?是否使用proguard?如果是,请向我们提供rulestry,将这一行添加到progaurd-保留公共类您的\u缺少\u类\u完整\u名称否。那没用。我添加了类似-keep public class co.android.mylibrary.BaseApp的内容。此外,这是在调试版本上,我认为这根本不重要,因为收缩功能已禁用。启用收缩功能后,它将运行应用程序。但在我希望的某些代码处不会中断,这会在某些设备上导致奇怪的行为。请尝试替换ReleaseComile projectpath:':mylibrary',配置:'release'debugCompile projectpath:':mylibrary',配置:'debug'with compile project:'mylibrary'
android {
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}