无法解决以下问题:Lbutterknife / ButterKnife $ Action; Android X?

时间:2019-03-25 04:37:32

标签: android butterknife

当我尝试在Android项目中使用Butterknife时,出现了以下异常:

当您添加一个外部库时,错误开始了,我不知道这是否在影响什么,我正在Android x上运行整个项目


    implementation('es.situm:situm-wayfinding:0.2.0-alpha@aar') {
        transitive = true
        changing = true
    }

似乎我遵循了Butterknife的安装说明,所以我不确定发生了什么。我有什么需要修复的吗? 他曾尝试重建整个项目,但仍然继续给我同样的错误。

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: smartlive.com.mx.smartlive, PID: 13851
    java.lang.NoClassDefFoundError: Failed resolution of: Lbutterknife/ButterKnife$Action;
        at java.lang.reflect.Constructor.newInstance0(Native Method)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
        at androidx.fragment.app.Fragment.instantiate(Fragment.java:443)
        at androidx.fragment.app.FragmentContainer.instantiate(FragmentContainer.java:50)
        at androidx.fragment.app.Fragment$2.instantiate(Fragment.java:2403)
        at androidx.fragment.app.FragmentManagerImpl.onCreateView(FragmentManager.java:3736)
        at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:189)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:769)
        at android.view.LayoutInflater.parseInclude(LayoutInflater.java:964)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:854)
        at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:518)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
        at es.situm.wayfinding.MapsFragment.onCreateView(Unknown Source)
        at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2439)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1460)
        at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
        at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
        at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269)
        at androidx.fragment.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3229)
        at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:201)
        at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:620)
        at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:178)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1248)
        at android.app.Activity.performStart(Activity.java:6683)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2687)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2789)
        at android.app.ActivityThread.-wrap12(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527)
        at android.os.Handler.dispatchMessage(Handler.java:110)
        at android.os.Looper.loop(Looper.java:203)
        at android.app.ActivityThread.main(ActivityThread.java:6251)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "butterknife.ButterKnife$Action" on path: DexPathList[[zip file "/data/app/smartlive.com.mx.smartlive-2/base.apk", zip file "/data/app/smartlive.com.mx.smartlive-2/split_lib_dependencies_apk.apk", zip file "/data/app/smartlive.com.mx.smartlive-2/split_lib_slice_0_apk.apk", zip file "/data/app/smartlive.com.mx.smartlive-2/split_lib_slice_1_apk.apk", zip file "/data/app/smartlive.com.mx.smartlive-2/split_lib_slice_2_apk.apk", zip file "/data/app/smartlive.com.mx.smartlive-2/split_lib_slice_3_apk.apk", zip file "/data/app/smartlive.com.mx.smartlive-2/split_lib_slice_4_apk.apk", zip file "/data/app/smartlive.com.mx.smartlive-2/split_lib_slice_5_apk.apk", zip file "/data/app/smartlive.com.mx.smartlive-2/split_lib_slice_6_apk.apk", zip file "/data/app/smartlive.com.mx.smartlive-2/split_lib_slice_7_apk.apk", zip file "/data/app/smartlive.com.mx.smartlive-2/split_lib_slice_8_apk.apk", zip file "/data/app/smartlive.com.mx.smartlive-2/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/smartlive.com.mx.smartlive-2/lib/arm, /data/app/smartlive.com.mx.smartlive-2/base.apk!/lib/armeabi-v7a, /data/app/smartlive.com.mx.smartlive-2/split_lib_dependencies_apk.apk!/lib/armeabi-v7a, /data/app/smartlive.com.mx.smartlive-2/split_lib_slice_0_apk.apk!/lib/armeabi-v7a, /data/app/smartlive.com.mx.smartlive-2/split_lib_slice_1_apk.apk!/lib/armeabi-v7a, /data/app/smartlive.com.mx.smartlive-2/split_lib_slice_2_apk.apk!/lib/armeabi-v7a, /data/app/smartlive.com.mx.smartlive-2/split_lib_slice_3_apk.apk!/lib/armeabi-v7a, /data/app/smartlive.com.mx.smartlive-2/split_lib_slice_4_apk.apk!/lib/armeabi-v7a, /data/app/smartlive.com.mx.smartlive-2/split_lib_slice_5_apk.apk!/lib/armeabi-v7a, /data/app/smartlive.com.mx.smartlive-2/split_lib_slice_6_apk.apk!/lib/armeabi-v7a, /data/app/smartlive.com.mx.smartlive-2/split_lib_slice_7_apk.apk!/lib/armeabi-v7a, /data/app/smartlive.com.mx.smartlive-2/split_lib_slice_8_apk.apk!/lib/armeabi-v7a, /data/app/smartlive.com.mx.smartlive-2/split_lib_slice_9_apk.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib, /system/vendor/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)

Gradel应用:

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'


android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "smartlive.com.mx.smartlive"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 5
        versionName "5.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
        multiDexEnabled true


    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8

    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    //noinspection GradleCompatible
    implementation 'com.android.support:design:28.0.0'
    implementation 'androidx.appcompat:appcompat:1.0.0-rc02'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    implementation 'androidx.recyclerview:recyclerview:1.0.0'
    implementation 'androidx.gridlayout:gridlayout:1.0.0'
    implementation 'com.android.support:support-vector-drawable:28.0.0'
    implementation 'com.google.android.material:material:1.0.0-rc02'
    implementation 'com.google.android.gms:play-services-maps:16.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    // Multidex
    implementation 'com.android.support:multidex:1.0.3'
    //Butterknife
    implementation 'com.jakewharton:butterknife:10.0.0'
    annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
    //Airbnb
    implementation 'com.airbnb.android:lottie:2.5.4'
    //Glide
    implementation 'com.github.bumptech.glide:glide:4.8.0'
    annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
    //CircleImage
    implementation 'de.hdodenhof:circleimageview:2.2.0'
    //Volley
    implementation 'com.mcxiaoke.volley:library-aar:1.0.0'
    implementation 'com.loopj.android:android-async-http:1.4.9'
    implementation 'com.google.code.gson:gson:2.8.5'
    //FireBase
    implementation 'com.google.firebase:firebase-core:16.0.8'
    implementation 'com.google.firebase:firebase-auth:16.2.0'
    //Facebook SDK
    implementation 'com.facebook.android:facebook-android-sdk:4.41.0'

    // Situm SDK
    /**
    implementation ('es.situm:situm-sdk:2.32.3@aar') {
        transitive = true
    }**/


    implementation('es.situm:situm-wayfinding:0.2.0-alpha@aar') {
        transitive = true
        changing = true
    }


}

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

2 个答案:

答案 0 :(得分:0)

您需要发布到Maven主机上的aar don't carry dependencies,可以在pom中反映传递依赖项。

答案 1 :(得分:0)

您可以尝试吗?

// implementation 'com.jakewharton:butterknife:10.1.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.1.0'

添加最新版本的butterknife-compiler,而不指定库本身。