xenione / swipe-maker

Easy Swipe Maker
Apache License 2.0
209 stars 44 forks source link

Crash Scrolling #7

Closed albetoetecnia closed 7 years ago

albetoetecnia commented 7 years ago

Hi Xenione,

I'm getting this error when try to show more items than 4 in a list with Both buttons (Right and Left) The app crash when scroll down: 'int com.xenione.libs.swipemaker.Anchors.cropInLimits(int)' on a null object reference

FATAL EXCEPTION: main Process: com.test, PID: 24047 java.lang.NullPointerException: Attempt to invoke virtual method 'int com.xenione.libs.swipemaker.Anchors.cropInLimits(int)' on a null object reference at com.xenione.libs.swipemaker.Position.cropInLimits(Position.java:63) at com.xenione.libs.swipemaker.orientation.OrientationStrategy.ensureInsideBounds(OrientationStrategy.java:78) at com.xenione.libs.swipemaker.orientation.OrientationStrategy.translateTo(OrientationStrategy.java:57) at com.xenione.libs.swipemaker.SwipeLayout.translateTo(SwipeLayout.java:103) at com.xenione.libs.swipemaker.AbsCoordinatorLayout$1.run(AbsCoordinatorLayout.java:20) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

albetoetecnia commented 7 years ago

Hi!

Solved adding the adapter inside Fragment. I was using AppCompatActivity to show the list, and when using Activity crash when scroll down.

Regards

xenione commented 7 years ago

Thanks @albetoetecnia anyway I will have a look.

albetoetecnia commented 7 years ago

Ok @xenione, sometime is crashing with fragment...I can't reproduce with your sample.

If I see anything, I will get back to you

albetoetecnia commented 7 years ago

Hi @xenione, Only occurs if the application goes to onStop state. The first time created works, but if the activity enter in onStop, if wake up again crash cropInLimits.

All data is null and initialize again the list, but it crash always

Any idea?

albetoetecnia commented 7 years ago

Hi @xenione reproduced on your example using compileSdkVersion 25

Here the build.gradle(Module: app)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.2"

    defaultConfig {
        applicationId "apps.xenione.com.swipelayout"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 111
        versionName "1.1.1"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:25.1.1'
    compile 'com.android.support:design:25.1.1'
    compile 'com.android.support:recyclerview-v7:25.1.1'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.jakewharton:butterknife:7.0.1'
    compile 'com.xenione.libs:swipe-maker:1.1.1'
    //compile project(':swipemaker')
}
albetoetecnia commented 7 years ago

@xenione with compileSdkVersion 24 is not working. Please, some way to fix it???

xenione commented 7 years ago

I can t reproduce it. Test it compilling sdk version sdk 25 . Could you attach device info. Thanks

albetoetecnia commented 7 years ago

Hi @xenione !!!

Nexus 5, Android 6.0.1

Set up more than 10 items to the list, change layout to Swing Swipe or other and try to scroll, 100% crash.

` public static List getAlbum() {

    return new ArrayList<Album>() {{
        add(new Album(1, "La Gossa Sorda", "Saó", 2008, R.drawable.disc_gossa_sorda_sao,
                "<b>La Gossa Sorda</b> és un grup musical de Pego (Marina Alta, País Valencià). La seua música té ritmes de Ska, Rock, Reggae i Punk amb la utilització de molts ritmes mediterranis i altres influències. Fan servir instruments com la dolçaina. Les seves lletres en valencià ataquen els fonaments del sistema, la injustícia de l\'ordre social i mundial actual, la lluita per salvar el País Valencià, el consumisme, la corrupció política, la crisi econòmica i l\'integrisme religiós."));
        add(new Album(2, "ZOO", "Tempestes vénen del sud", 2014, R.drawable.disc_zoo_tempestes,
                "<b>ZOO</b> és un col·lectiu musical valencià nascut el 2014 que se centra entre el rap, el hip-hop, el rock i ska però també mescla ritmes electrònics. Les lletres de les cançons són polítiques."));
        add(new Album(3, "Auxili", "Dolç Atac", 2013, R.drawable.disc_auxili_dolc,
                ""));
        add(new Album(4, "La Raíz", "Así en el cielo como en la selva", 2013, R.drawable.disc_raiz_asi_en,
                "<b>La Raíz</b> es un grupo de música de Gandía (Valencia)"));
        add(new Album(5, "Aspencat", "Essència", 2013, R.drawable.disc_aspencat_essencia,
                "<b>Aspencat</b> és un grup musical valencià, més concretament de Xaló, a la Marina Alta. El seu estil s\'ha basat en l\'ska, el reggae i el drum and bass, però en l\'actualitat ha avançat cap a uns ritmes més electrònics on es pot veure la presència del dubstep"));
        add(new Album(6, "Bajoqueta rock", "A Pèl ", 1998, R.drawable.disc_bajoqueta_apel,
                "<b>Bajoqueta Rock</b> és un grup de rock en valencià que es va formar l\'any 1988 a Riba-roja de Túria i que gaudix de molta popularitat al País Valencià per les seues actuacions excèntriques, les seues lletres rurals, un poc bèsties però sempre amb gran humor, i una gran varietat musical basada en el rock però que inclou tonades populars"));
        add(new Album(7, "Diluvi", "Motius", 2013, R.drawable.disc_diluvi_motius,
                "<b>El diluvi</b> universal és un mite recurrent a diverses cultures, que indica que una gran inundació va destruir tota la vida (o gairebé) en temps remots"));
        add(new Album(1, "La Gossa Sorda", "Saó", 2008, R.drawable.disc_gossa_sorda_sao,
                "<b>La Gossa Sorda</b> és un grup musical de Pego (Marina Alta, País Valencià). La seua música té ritmes de Ska, Rock, Reggae i Punk amb la utilització de molts ritmes mediterranis i altres influències. Fan servir instruments com la dolçaina. Les seves lletres en valencià ataquen els fonaments del sistema, la injustícia de l\'ordre social i mundial actual, la lluita per salvar el País Valencià, el consumisme, la corrupció política, la crisi econòmica i l\'integrisme religiós."));
        add(new Album(2, "ZOO", "Tempestes vénen del sud", 2014, R.drawable.disc_zoo_tempestes,
                "<b>ZOO</b> és un col·lectiu musical valencià nascut el 2014 que se centra entre el rap, el hip-hop, el rock i ska però també mescla ritmes electrònics. Les lletres de les cançons són polítiques."));
        add(new Album(3, "Auxili", "Dolç Atac", 2013, R.drawable.disc_auxili_dolc,
                ""));
        add(new Album(4, "La Raíz", "Así en el cielo como en la selva", 2013, R.drawable.disc_raiz_asi_en,
                "<b>La Raíz</b> es un grupo de música de Gandía (Valencia)"));
        add(new Album(5, "Aspencat", "Essència", 2013, R.drawable.disc_aspencat_essencia,
                "<b>Aspencat</b> és un grup musical valencià, més concretament de Xaló, a la Marina Alta. El seu estil s\'ha basat en l\'ska, el reggae i el drum and bass, però en l\'actualitat ha avançat cap a uns ritmes més electrònics on es pot veure la presència del dubstep"));
        add(new Album(6, "Bajoqueta rock", "A Pèl ", 1998, R.drawable.disc_bajoqueta_apel,
                "<b>Bajoqueta Rock</b> és un grup de rock en valencià que es va formar l\'any 1988 a Riba-roja de Túria i que gaudix de molta popularitat al País Valencià per les seues actuacions excèntriques, les seues lletres rurals, un poc bèsties però sempre amb gran humor, i una gran varietat musical basada en el rock però que inclou tonades populars"));
        add(new Album(7, "Diluvi", "Motius", 2013, R.drawable.disc_diluvi_motius,
                "<b>El diluvi</b> universal és un mite recurrent a diverses cultures, que indica que una gran inundació va destruir tota la vida (o gairebé) en temps remots"));
        add(new Album(1, "La Gossa Sorda", "Saó", 2008, R.drawable.disc_gossa_sorda_sao,
                "<b>La Gossa Sorda</b> és un grup musical de Pego (Marina Alta, País Valencià). La seua música té ritmes de Ska, Rock, Reggae i Punk amb la utilització de molts ritmes mediterranis i altres influències. Fan servir instruments com la dolçaina. Les seves lletres en valencià ataquen els fonaments del sistema, la injustícia de l\'ordre social i mundial actual, la lluita per salvar el País Valencià, el consumisme, la corrupció política, la crisi econòmica i l\'integrisme religiós."));
        add(new Album(2, "ZOO", "Tempestes vénen del sud", 2014, R.drawable.disc_zoo_tempestes,
                "<b>ZOO</b> és un col·lectiu musical valencià nascut el 2014 que se centra entre el rap, el hip-hop, el rock i ska però també mescla ritmes electrònics. Les lletres de les cançons són polítiques."));
        add(new Album(3, "Auxili", "Dolç Atac", 2013, R.drawable.disc_auxili_dolc,
                ""));
        add(new Album(4, "La Raíz", "Así en el cielo como en la selva", 2013, R.drawable.disc_raiz_asi_en,
                "<b>La Raíz</b> es un grupo de música de Gandía (Valencia)"));
        add(new Album(5, "Aspencat", "Essència", 2013, R.drawable.disc_aspencat_essencia,
                "<b>Aspencat</b> és un grup musical valencià, més concretament de Xaló, a la Marina Alta. El seu estil s\'ha basat en l\'ska, el reggae i el drum and bass, però en l\'actualitat ha avançat cap a uns ritmes més electrònics on es pot veure la presència del dubstep"));
        add(new Album(6, "Bajoqueta rock", "A Pèl ", 1998, R.drawable.disc_bajoqueta_apel,
                "<b>Bajoqueta Rock</b> és un grup de rock en valencià que es va formar l\'any 1988 a Riba-roja de Túria i que gaudix de molta popularitat al País Valencià per les seues actuacions excèntriques, les seues lletres rurals, un poc bèsties però sempre amb gran humor, i una gran varietat musical basada en el rock però que inclou tonades populars"));
        add(new Album(7, "Diluvi", "Motius", 2013, R.drawable.disc_diluvi_motius,
                "<b>El diluvi</b> universal és un mite recurrent a diverses cultures, que indica que una gran inundació va destruir tota la vida (o gairebé) en temps remots"));
    }};
}`

04-18 10:45:40.354 27861-27861/? E/AndroidRuntime: FATAL EXCEPTION: main Process: apps.xenione.com.swipelayout, PID: 27861 java.lang.NullPointerException: Attempt to invoke virtual method 'int com.xenione.libs.swipemaker.Anchors.cropInLimits(int)' on a null object reference at com.xenione.libs.swipemaker.Position.cropInLimits(Position.java:63) at com.xenione.libs.swipemaker.orientation.OrientationStrategy.ensureInsideBounds(OrientationStrategy.java:79) at com.xenione.libs.swipemaker.orientation.OrientationStrategy.translateTo(OrientationStrategy.java:58) at com.xenione.libs.swipemaker.SwipeLayout.translateTo(SwipeLayout.java:103) at com.xenione.libs.swipemaker.AbsCoordinatorLayout$1.run(AbsCoordinatorLayout.java:20) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5417) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Regards!!!

xenione commented 7 years ago

I can' t reproduce issue even if I try to reproduce scenario android version, device and grow the list up to 100 items, show more than 10 items per screen. the Issue is quite spooky. because anchors are proper initialize every time the layout is inflated.

albetoetecnia commented 7 years ago

For me is really easy to reproduce, I've only had changed versions of gradle and run the application screen shot 2017-04-19 at 12 10 58

Video: https://drive.google.com/open?id=0Byf4p4Su5JVwcGtFaWlDME1USS1WTjVEY1VtSk9mZnpGMmpR

albetoetecnia commented 7 years ago

screen shot 2017-04-19 at 12 12 55

Better screenshot!

albetoetecnia commented 7 years ago

And with this gradle your proyect works fine.

screen shot 2017-04-19 at 12 19 04

xenione commented 7 years ago

I got it!!!

xenione commented 7 years ago

Thanks @albetoetecnia . Finally I could reproduce and fix it.

Library will be update soon. Issue: Bugfix remove translation to initial position when inflate layout since it's not needed. upgrade sdk.

albetoetecnia commented 7 years ago

Great! @xenione

albetoetecnia commented 7 years ago

@xenione can I update via gradle??

xenione commented 7 years ago

apply changes into your local copy is already gradle updated

ArchitShah248 commented 6 years ago

I am still having this crash. Library version : 1.1.3

Gradle file: compileSdkVersion 26 buildToolsVersion '26.0.2' minSdkVersion 19 targetSdkVersion 26

swipe_issue

@xenione What would be the action to solve this crash?

xenione commented 6 years ago

I think you dont't upgrade version ensureInsideBounds() is not on line 78 any more .

ArchitShah248 commented 6 years ago

@xenione Can you please guide me which version I should use? Currently, I am using 1.1.3 library from jcentre compile 'com.xenione.libs:swipe-maker:1.1.3'

Is this the correct version or should I use github library and add it as module?