簡體   English   中英

Android圖像裁剪器庫Java ClassCastException

[英]Android image cropper library java ClassCastException

我正在使用一個流行的圖像裁剪庫https://github.com/ArthurHub/Android-Image-Cropper ,一切似乎都正確,但是我遇到了運行時異常,即

Caused by: java.lang.ClassCastException: com.edmodo.cropper.cropwindow.CropOverlayView cannot be cast to com.theartofdev.edmodo.cropper.CropOverlayView

crop_image_view.xml

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
   xmlns:tools="http://schemas.android.com/tools">

<ImageView
    android:id="@+id/ImageView_image"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:adjustViewBounds="true"
    android:scaleType="centerInside"
    tools:ignore="contentDescription"/>

<com.theartofdev.edmodo.cropper.CropOverlayView
    android:id="@+id/CropOverlayView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:visibility="invisible"/>

<ProgressBar
    android:id="@+id/CropProgressBar"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center"/>

有異常的代碼:CropImageView.java

private final CropOverlayView mCropOverlayView;

mCropOverlayView = (CropOverlayView) v.findViewById(R.id.CropOverlayView);

異常消息:

03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:致命異常:主03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:進程:com.fiesta,PID: 28079 03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:java.lang.RuntimeException:無法啟動活動ComponentInfo {com.fiesta / com.fiesta.UserProfile}:android.view.InflateException:二進制XML文件第9行:膨脹類com.theartofdev.edmodo.cropper.CropImageView 03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime時出錯:位於android.app.ActivityThread.performLaunchActivity(ActivityThread.java: 2325)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)03-27 00:16:12.147 28079-28079 / com。 fiesta E / AndroidRuntime:在android.app.ActivityThread.access $ 800(ActivityThread.java:151)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:在android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1303)03-27 0 0:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.os.Handler.dispatchMessage(Handler.java:102)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:在android.os.Looper.loop(Looper.java:135)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:在android.app.ActivityThread.main(ActivityThread.java:5254)03 -27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:在java.lang.reflect.Method.invoke(本機方法)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime :位於java.lang.reflect.Method.invoke(Method.java:372)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於com.android.internal.os.ZygoteInit $ MethodAndArgsCaller。運行(ZygoteInit.java:903)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)03-27 00 :16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:由以下原因引起:android.view.InflateException:二進制XML文件第9行:膨脹類com.theartofdev.edmodo.croppe的錯誤 r.CropImageView 03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:在android.view.LayoutInflater.createView(LayoutInflater.java:633)03-27 00:16:12.147 28079-28079 / com .fiesta E / AndroidRuntime:在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:在android.view.LayoutInflater.rInflate(LayoutInflater .java:806)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.view.LayoutInflater.parseInclude(LayoutInflater.java:916)03-27 00:16:12.147 28079-28079 /com.fiesta E / AndroidRuntime:位於android.view.LayoutInflater.rInflate(LayoutInflater.java:802)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.view.LayoutInflater.inflate (LayoutInflater.java:504)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:在android.view.LayoutInflater.inflate(LayoutInflater.java:414)03-27 00:16:12.147 28079 -28079 / com.fiesta E / AndroidRuntime:位於android.view.LayoutInflater.infla te(LayoutInflater.java:365)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:在android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:257)03-27 00 :16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於com.fiesta.UserProfile.onCreate(UserProfile.java:62)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.app.Activity.performCreate(Activity.java: 5990)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)03-27 00:16:12.147 28079-28079 / com。 fiesta E / AndroidRuntime:位於android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.app.ActivityThread.handleLaunchActivity(ActivityThread。 java:2387)03-27 00:16:12.14 7 28079-28079 / com.fiesta E / AndroidRuntime:在android.app.ActivityThread.access $ 800(ActivityThread.java:151)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:在android。 app.ActivityThread $ H.handleMessage(ActivityThread.java:1303)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:at android.os.Handler.dispatchMessage(Handler.java:102)03- 27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.os.Looper.loop(Looper.java:135)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime :位於android.app.ActivityThread.main(ActivityThread.java:5254)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於java.lang.reflect.Method.invoke(本機方法)03 -27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:at java.lang.reflect.Method.invoke(Method.java:372)03-27 00:16:12.147 28079-28079 / com.fiesta E / Android運行時:com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:903)03-27 00:16:12.147 28079-28079 / com.fiesta E / An droidRuntime:在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:由以下原因引起:java.lang.reflect.InvocationTargetException 03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:at java.lang.reflect.Constructor.newInstance(本機方法)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於java.lang.reflect.Constructor.newInstance(Constructor.java:288)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.view.LayoutInflater.createView(LayoutInflater.java :607)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)03-27 00:16:12.147 28079-28079 / com .fiesta E / AndroidRuntime:在android.view.LayoutInflater.rInflate(LayoutInflater.java:806)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:在android.view.LayoutInflater.parseInclude(LayoutInflater .java:916)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.view.LayoutInflater.rInflate(LayoutInflater.java:802)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.view.LayoutInflater.inflate(LayoutInflater.java :504)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.view.LayoutInflater.inflate(LayoutInflater.java:414)03-27 00:16:12.147 28079-28079 / com .fiesta E / AndroidRuntime:位於android.view.LayoutInflater.inflate(LayoutInflater.java:365)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.support.v7.app.AppCompatDelegateImplV7 .setContentView(AppCompatDelegateImplV7.java:257)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於com.fiesta.UserProfile.onCreate(UserProfile.java:62)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:在android.app.Activity.performCreate(Activity.java:599 0)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)03-27 00:16:12.147 28079-28079 / com。 fiesta E / AndroidRuntime:位於android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.app.ActivityThread.handleLaunchActivity(ActivityThread。 java:2387)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:at android.app.ActivityThread.access $ 800(ActivityThread.java:151)03-27 00:16:12.147 28079-28079 /com.fiesta E / AndroidRuntime:位於android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1303)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.os.Handler .dispatchMessage(Handler.java:102)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:at android.os.Looper.loop(Looper.java:135)03-27 00:16: 12.147 28079-28079 / com.fiesta E / AndroidRuntime:at android.app.ActivityThread.main(Act ivityThread.java:5254)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:at java.lang.reflect.Method.invoke(Native Method)03-27 00:16:12.147 28079-28079 /com.fiesta E / AndroidRuntime:在java.lang.reflect.Method.invoke(Method.java:372)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:在com.android.internal .os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:903)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:at com.android.internal.os.ZygoteInit.main(ZygoteInit.java :698)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:由以下原因引起:java.lang.ClassCastException:com.edmodo.cropper.cropwindow.CropOverlayView無法轉換為com.theartofdev.edmodo。 cropper.CropOverlayView 03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:at com.theartofdev.edmodo.cropper.CropImageView。(CropImageView.java:190)03-27 00:16:12.147 28079- 28079 / com.fiesta E / AndroidRuntime:位於java.lang.reflect.Constructor.newInstance(本機方法)03-27 00:16:12.14 7 28079-28079 / com.fiesta E / AndroidRuntime:在java.lang.reflect.Constructor.newInstance(Constructor.java:288)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:在Android .view.LayoutInflater.createView(LayoutInflater.java:607)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.view.LayoutInflater.rInflate(LayoutInflater.java:806)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:在android.view.LayoutInflater.parseInclude(LayoutInflater.java:916)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:在android.view.LayoutInflater.rInflate(LayoutInflater.java:802)03 -27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.view.LayoutInflater.inflate(LayoutInflater.java:504)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.view.LayoutInflater.inflate(LayoutInflater.java: 414)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.view.LayoutInflater.inflate(LayoutInflater.java:365)03-27 00:16:12.147 28079-28079 / com。節日E / AndroidRuntime:位於android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:257)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.support.v7。 app.AppCompatActivity.setContentView(AppCompatActivity.java:109)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:at com.fiesta.UserProfile.onCreate(UserProfile.java:62)03-27 00 :16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.app.Activity.performCreate(Activity.java:5990)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)03- 27 00:16:12.147 28079-28079 / com.fiesta E / An droidRuntime:at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:at android.app.ActivityThread.access $ 800(ActivityThread.java: 151)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1303)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.os.Handler.dispatchMessage(Handler.java:102)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.os.Looper.loop( Looper.java:135)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於android.app.ActivityThread.main(ActivityThread.java:5254)03-27 00:16:12.147 28079- 28079 / com.fiesta E / AndroidRuntime:在java.lang.reflect.Method.invoke(本機方法)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:在java.lang.reflect.Method .invoke(Method.java:372)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:at com.android.intern al.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:903)03-27 00:16:12.147 28079-28079 / com.fiesta E / AndroidRuntime:位於com.android.internal.os.ZygoteInit.main(ZygoteInit。 Java:698)

build.grade文件:

應用程式:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.1"

    defaultConfig {
        applicationId "com.fiesta"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    sourceSets { main { res.srcDirs = ['src/main/res', 'src/main/res/search'] } }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.android.support:design:23.1.0'
    compile 'com.edmodo:cropper:1.0.1'
    compile 'com.theartofdev.edmodo:android-image-cropper:1.2.+'
}

農作物:

apply plugin: 'com.android.library'

ext {
    PUBLISH_GROUP_ID = 'com.theartofdev.edmodo'
    PUBLISH_ARTIFACT_ID = 'android-image-cropper'
    PUBLISH_VERSION = '1.2.3'
    // gradlew clean build generateRelease
}

android {

    compileSdkVersion 23
    buildToolsVersion '23.0.1'
    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 23
        versionCode 1
        versionName PUBLISH_VERSION
        multiDexEnabled true
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
    lintOptions {
        abortOnError false
   }
}
apply from: 'https://raw.githubusercontent.com/ArthurHub/release-android-library/master/android-release-aar.gradle'

因此,這是對該問題的最終答案。

com.edmodo:cropper:1.0.1庫正在導入com.edmodo.cropper.cropwindow.CropOverlayView,我將其刪除並解決了該問題

應用程序的build.gradle文件的dependencies部分應如下所示

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.1.0'
    compile 'com.android.support:design:23.1.0'
    compile 'com.theartofdev.edmodo:android-image-cropper:1.2.+'
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM