[英]Didn't find class “com.example.android.App” on path: DexPathList on Android 4
我有使用Dagger 2进行DI的Kotlin MultiDex应用程序。 一切都差不多,但是我的设备带有API 17(Android 4.2.2),有时应用程序在启动后立即崩溃,但异常
java.lang.RuntimeException:无法实例化应用程序com.example.android.App:java.lang.ClassNotFoundException:在路径:DexPathList [[zip file“ / data / app / com.example.android-1.apk“],nativeLibraryDirectories = [/ data / app-lib / com.example.android-1,/ vendor / lib,/ system / lib]]
通常,这发生在“生成”->“项目”之后,也出现在“文件”->“使缓存无效/重新启动”之后,但并非总是如此。 通常,重建项目会有所帮助,但我想完全解决这些情况。
请告诉我可能是什么问题?
我的build.gradle(不完整):
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'io.fabric'
apply plugin: 'io.sentry.android.gradle'
apply plugin: 'kotlin-kapt'
android {
compileSdkVersion 27
defaultConfig {
applicationId "com.example.android"
minSdkVersion 16
targetSdkVersion 27
versionCode 58
versionName "1.0"
vectorDrawables.useSupportLibrary = true
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
applicationVariants.all { variant ->
variant.outputs.all { output ->
outputFileName = "example.apk"
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
//Kotlin
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.3.11"
// Coroutines
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.1.0"
implementation "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.1.0"
...
// LiveData + ViewModel
implementation "android.arch.lifecycle:extensions:1.1.1"
implementation "com.android.support:multidex:1.0.3"
implementation "com.android.support.constraint:constraint-layout:1.1.3"
...
// Dagger
implementation "com.google.dagger:dagger:2.19"
implementation "com.google.dagger:dagger-android-support:2.19"
kapt "com.google.dagger:dagger-compiler:2.19"
kapt "com.google.dagger:dagger-android-processor:2.19"
...
}
我的AndroidManifest.xml(不完整):
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.example.android">
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<application
android:name=".App"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
tools:ignore="AllowBackup,GoogleAppIndexingWarning">
<activity
android:name=".activities.SplashActivity"
android:screenOrientation="portrait"
android:theme="@style/Theme.Splash">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
...
</application>
</manifest>
我的应用程序类(App.kt,不完整)
class App: DaggerApplication() {
override fun onCreate() {
super.onCreate()
...
}
override fun attachBaseContext(base: Context?) {
super.attachBaseContext(base)
MultiDex.install(this)
}
override fun applicationInjector(): AndroidInjector<out DaggerApplication> =
DaggerAppComponent.builder().application(this).build()
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.