2016-03-12 25 views
6

Có những lúc tôi cài đặt ứng dụng Android của mình và tôi nhận được ngoại lệ sau nhưng đây không phải là t luôn luôn tái sản xuất.Java.lang.ClassCastException: Android.support.v7.widget.ContentFrameLayout không thể truyền sang Android.support.v7.widget.ContentFrameLayout

java.lang.ClassCastException: android.support.v7.widget.ContentFrameLayout không thể được đúc để android.support.v7.widget.ContentFrameLayout

Tôi đang sử dụng multidex trên ứng dụng Android của tôi và tôi đọc số this question về các thiết bị Samsung có lỗi với việc thực hiện đa điểm nhưng điều này xảy ra trên LG G3 chạy 5.1 và HTC A9 chạy 6.0.

Bất kỳ ai có bất kỳ ý tưởng nào tại sao điều này xảy ra ngẫu nhiên và tôi có thể làm gì để khắc phục sự cố?

EDIT: Tôi không thể chia sẻ nhiều mã vì đây là một công ty tôi làm việc.

buildscript { 
repositories { 
    mavenCentral() 
} 

dependencies { 
    classpath 'com.android.tools.build:gradle:1.5.0' 
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 
} 

}

áp dụng plugin: 'com.android.application' áp dụng plugin: 'com.neenbedankt.android-apt'

buildscript { kho { mavenCentral() }

dependencies { 
    classpath 'com.android.tools.build:gradle:1.5.0' 
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8' 
} 

}

áp dụng plugin: 'com.android.application' áp dụng plugin: 'com.neenbedankt.android-apt'

kho { mavenCentral() maven { url 'https://repository-achartengine.forge.cloudbees.com/snapshot' } maven { url 'libs-localrepository' }}

android { buildToolsVersion "23.0.2" compileSdkVersion 23

012.
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' 

} 

}

apply plugin: 'com.google.gms.google-services' 
+0

Hiển thị 'build.Gradle' –

+0

hiển thị mã của bạn. bao gồm nhập khẩu và gradle và đăng nhập. –

+0

Tôi đã thêm hầu hết các tệp ứng dụng gradle, nhưng tôi không thể chia sẻ nhiều vì đây là một ứng dụng của công ty, không phải của riêng tôi. –

Trả lời

0

Đôi khi lại chúng ta phải đối mặt với loại tương tự của vấn đề, chúng tôi đã thêm

android { 
     dexOptions { 
      jumboMode = true 
     } 
    } 

trong build.gradle và lớp ứng dụng mở rộng cho MultiDexApplication, hãy thử liệu này giúp bạn.

+0

Cảm ơn tôi sẽ thử, nhưng bạn có biết tại sao điều này là cần thiết không? Thông tin tốt nhất tôi đã đọc về điều này nhưng tôi vẫn không hiểu: https://developers.soundcloud.com/blog/cong chúc mừng-you-have-a-lot-of-code-remedying-androids-method-limit-part- 1 –

+0

Vẫn không hiểu tại sao điều này là cần thiết, nhưng cho đến nay tôi đã không nhận được một vụ tai nạn kể từ đó. –

+0

Chỉ cần nhìn thấy nó một lần nữa, do đó, điều này không khắc phục được sự cố. Điều kỳ lạ là điều này đã xảy ra sau khi vô hiệu hóa và sau đó kích hoạt lại ứng dụng thông qua setApplicationEnabledSetting, một quyền mức hệ thống. –

1

Tôi thấy rằng vấn đề là với cờ được đặt trong tệp kê khai để có quy trình liên tục. Ứng dụng của tôi là ứng dụng hệ thống được tải bởi nhà sản xuất và khi cập nhật diễn ra, điều này sẽ giết chết ứng dụng, hệ điều hành android sẽ khởi chạy lại quá trình cũ, do đó dẫn đến hành vi kỳ quặc. Giải pháp của tôi đã kết thúc việc phải thay đổi tên lớp và các thành phần biểu hiện android để sử dụng những tên lớp mới và để cho quá trình liên tục khác chỉ treo xung quanh sau khi cập nhật. Sau khi ứng dụng bị giết một lần hoặc điện thoại được khởi động lại, các quá trình đó sẽ chết và không bao giờ được khởi chạy lại. Tôi cũng đã xóa cờ cho quá trình liên tục.

Các vấn đề liên quan