[英]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.