Java.lang.ClassCastException:Android.support.v7.widget.ContentFrameLayout无法强制转换为Android.support.v7.widget.ContentFrameLayout
有时我安装Android应用程序时会遇到以下异常,但这并不总是可以重现的 java.lang.ClassCastException: 无法将android.support.v7.widget.ContentFrameLayout强制转换为 android.support.v7.widget.ContentFrameLayout 我在我的Android应用程序上使用multidex,我读到三星设备在multidex实现方面存在缺陷,但这种情况发生在运行5.1的LG G3和运行6.0的HTC A9上 任何人都知道为什么这是随机发生的,我能做些什么来修复它 编辑:我不能分享太多的代码,因为这是我工作的公司的代码Java.lang.ClassCastException:Android.support.v7.widget.ContentFrameLayout无法强制转换为Android.support.v7.widget.ContentFrameLayout,android,gradle,android-multidex,Android,Gradle,Android Multidex,有时我安装Android应用程序时会遇到以下异常,但这并不总是可以重现的 java.lang.ClassCastException: 无法将android.support.v7.widget.ContentFrameLayout强制转换为 android.support.v7.widget.ContentFrameLayout 我在我的Android应用程序上使用multidex,我读到三星设备在multidex实现方面存在缺陷,但这种情况发生在运行5.1的LG G3和运行6.0的HTC A9上
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
应用插件:“com.android.application”
应用插件:“com.neenbedankt.android apt”
构建脚本{
存储库{
mavenCentral()
}
}
应用插件:“com.android.application”
应用插件:“com.neenbedankt.android apt”
存储库{
mavenCentral()
马文{
url“”
}
马文{
url“libs localrepository”
}
}
安卓{
buildToolsVersion“23.0.2”
编译DK23版
dexOptions {
javaMaxHeapSize "4g"
}
defaultConfig {
minSdkVersion 18
targetSdkVersion 23
multiDexEnabled true
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
exclude 'META-INF/NOTICE.txt'
exclude 'META-INF/LICENSE'
exclude 'META-INF/NOTICE'
exclude 'META-INF/ASL2.0'
exclude 'META-INF/INDEX.LIST'
}
lintOptions {
ignore 'ProtectedPermissions'
}
signingConfigs {
release {
storeFile file("somepath...")
storePassword System.getenv("some_password")
keyAlias "release"
keyPassword System.getenv("some_password")
}
}
buildTypes {
release {
minifyEnabled false
proguardFile getDefaultProguardFile('proguard-android.txt')
proguardFile 'proguard-config.txt'
}
debug {
minifyEnabled false
proguardFile getDefaultProguardFile('proguard-android.txt')
proguardFile 'proguard-config.txt'
}
}
dependencies {
compile 'com.android.support:multidex:1.0.0'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.0'
compile 'com.android.support:preference-v14:23.1.0'
compile ('com.m.c:CE:1.0') {
changing=true
}
compile ('com.m.c:APL:1.0') {
changing=true
}
compile ('c.m.c:C:1.0') {
changing=true
}
debugCompile 'ch.acra:acra:4.5.0'
compile files('libs-gradle/aM.jar')
compile files('libs-gradle/android-logging-log4j-m-1.0.3.jar')
compile files('libs-gradle/ce.jar')
compile 'com.google.android.gms:play-services-analytics:8.4.0'
apt 'com.squareup.dagger:dagger-compiler:1.2.2'
}
}
我们补充道,以前我们也遇到过类似的问题
android {
dexOptions {
jumboMode = true
}
}
在build.gradle和扩展应用程序类to
MultiDexApplication
中,请尝试这是否对您有帮助。我发现问题在于清单中设置了一个标志,用于持久化进程。我的应用程序是一个由制造商加载的系统应用程序,当更新发生时,会导致应用程序失效,android操作系统会重新启动旧程序,从而导致奇怪的行为。我的解决方案最终不得不更改类名和android清单组件,以使用这些新的类名,并让另一个持久化进程在更新后挂起。在应用程序关闭一次或手机重新启动后,这些进程将停止,并且不再启动。我还删除了持久进程的标志。显示您的build.Gradle
请显示您的代码。包括导入、gradle和日志。我添加了大部分应用程序gradle文件,但我不能分享太多,因为这是一个公司应用程序,不是我自己的。谢谢,我会尝试一下,但你知道为什么需要这个吗?关于这一点,我读过最好的信息,但我仍然不明白:我仍然不明白为什么这是必要的,但到目前为止,我还没有得到另一次崩溃。只是再次看到它,所以这并不能解决问题。奇怪的是,这是在通过系统级权限setApplicationEnabledSetting禁用并重新启用应用程序后发生的。这是同一个异常吗?这是同一个异常。
apply plugin: 'com.google.gms.google-services'
android {
dexOptions {
jumboMode = true
}
}