【问题标题】:NoClassDefError com.liferay.mobile.screens.base.interactor.JSONObjectCallback in Liferay Screens AndroidLiferay Screens Android 中的 NoClassDefError com.liferay.mobile.screens.base.interactor.JSONObjectCallback
【发布时间】:2016-05-08 23:49:22
【问题描述】:

我在我的 Android 移动应用程序中使用 Liferay Screens 以及 Liferay Android 移动 SDK。 我已将 LoginScreenlet 放入我的活动中。它显示正确,但是当我单击登录按钮时,出现此错误:

05-08 10:58:37.681 9296-9296/com.mimacom.lrhc E/AndroidRuntime: FATAL EXCEPTION: main
                                                            java.lang.NoClassDefFoundError: com.liferay.mobile.screens.base.interactor.JSONObjectCallback
                                                                at com.liferay.mobile.screens.auth.login.interactor.LoginBasicInteractor.getUserService(LoginBasicInteractor.java:68)
                                                                at com.liferay.mobile.screens.auth.login.interactor.LoginBasicInteractor.login(LoginBasicInteractor.java:37)
                                                                at com.liferay.mobile.screens.auth.login.LoginScreenlet.onUserAction(LoginScreenlet.java:236)
                                                                at com.liferay.mobile.screens.auth.login.LoginScreenlet.onUserAction(LoginScreenlet.java:44)
                                                                at com.liferay.mobile.screens.base.BaseScreenlet.performUserAction(BaseScreenlet.java:78)
                                                                at com.liferay.mobile.screens.viewsets.defaultviews.auth.login.LoginView.onClick(LoginView.java:136)
                                                                at android.view.View.performClick(View.java:4084)
                                                                at android.view.View$PerformClick.run(View.java:16966)
                                                                at android.os.Handler.handleCallback(Handler.java:615)
                                                                at android.os.Handler.dispatchMessage(Handler.java:92)
                                                                at android.os.Looper.loop(Looper.java:137)
                                                                at android.app.ActivityThread.main(ActivityThread.java:4745)
                                                                at java.lang.reflect.Method.invokeNative(Native Method)
                                                                at java.lang.reflect.Method.invoke(Method.java:511)
                                                                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
                                                                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
                                                                at dalvik.system.NativeStart.main(Native Method)

我正在 Genymotion 模拟器上尝试这个,Android 4.1.1(16 级)。

我的应用程序的 gradle 文件:

apply plugin: 'com.android.application'
apply plugin: 'com.neenbedankt.android-apt'
apply plugin: 'com.jakewharton.hugo'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"

    defaultConfig {
        applicationId "com.mimacom.lrhc"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    compileOptions {
        sourceCompatibility "1.7"
        targetCompatibility "1.7"
    }
    packagingOptions {
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/NOTICE'
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
        mock {}
        prod {}
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    //Support libraries
    compile 'com.android.support:support-v4:23.3.0'
    compile 'com.android.support:appcompat-v7:23.3.0'
    compile 'com.android.support:support-annotations:23.3.0'
    //RxJava
    compile 'io.reactivex:rxandroid:1.1.0'
    compile 'io.reactivex:rxjava:1.1.3'
    //Butterknife view injection
    compile 'com.jakewharton:butterknife:8.0.1'
    apt 'com.jakewharton:butterknife-compiler:8.0.1'
    //Dagger dependency injection
    apt 'com.google.dagger:dagger-compiler:2.2'
    compile 'com.google.dagger:dagger:2.2'
    provided 'javax.annotation:jsr250-api:1.0'
    //Memory leak detector
    debugCompile 'com.squareup.leakcanary:leakcanary-android:1.4-beta2'
    releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2'
    testCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta2'
    //Liferay SDK and Screens
    compile group: 'com.liferay.mobile', name: 'liferay-android-sdk', version: '6.2.0.22'
    compile 'com.liferay.mobile:liferay-screens:1.3.0'
    compile 'com.liferay.mobile:liferay-material-viewset:1.3.0'
}

我发现了一个关于类似问题的论坛帖子,但这是针对旧版 Liferay Screens 的。我猜 1.3.0 应该已经兼容了。 https://web.liferay.com/community/forums/-/message_boards/message/60438799

确实是依赖问题还是其他问题?

【问题讨论】:

    标签: android gradle dependencies liferay


    【解决方案1】:

    这是一个依赖问题,6.2.0.22 是旧版本,而屏幕 1.3.0 正在使用更新的 API 更改。

    您不需要对移动 SDK 的依赖,您可以使用嵌入在屏幕中的 SDK(在更新 https://github.com/liferay/liferay-screens/blob/develop/android/Migrate%20to%20Liferay%20Screens%201.2.md 文档中记录的一些代码后)

    【讨论】:

    猜你喜欢
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多