Stackoverflowerror when using a method

Asked

Viewed 50 times

0

Next, I’m in the development of an app. In it there are two calculation methods, where in the data entry the user chooses the method and inserts the data. One of these methods is working perfectly. The other causes the following figure problem.

inserir a descrição da imagem aqui

I do not know if my question is vague... I apologize for that.

I emphasize that the difference between one calculation and another is that what is giving error has the selection and sending data in the form of a spinner to the other Activity. Could that be it?

I/art: Background sticky concurrent mark sweep GC freed 29379(2MB) AllocSpace objects, 0(0B) LOS objects, 0% free, 83MB/83MB, paused 96.984ms total 175.964ms
I/art: Background partial concurrent mark sweep GC freed 34691(2MB) AllocSpace objects, 14(41MB) LOS objects, 14% free, 47MB/55MB, paused 732us total 146.057ms
I/art: Background partial concurrent mark sweep GC freed 48902(3MB) AllocSpace objects, 3(4MB) LOS objects, 12% free, 55MB/63MB, paused 793us total 125.335ms
I/art: Background partial concurrent mark sweep GC freed 41873(3MB) AllocSpace objects, 2(10MB) LOS objects, 12% free, 54MB/62MB, paused 762us total 130.004ms
I/art: Background partial concurrent mark sweep GC freed 41159(3MB) AllocSpace objects, 1(9MB) LOS objects, 11% free, 59MB/67MB, paused 793us total 124.847ms
D/Error: ERR: exClass=java.lang.StackOverflowError
D/Error: ERR: exMsg=stack size 8MB
D/Error: ERR: file=Resultado.java
D/Error: ERR: class=uerj.dcad.Resultado
D/Error: ERR: method=massa_superplastificante_solidos_aitcin line=400
D/Error: ERR: stack=java.lang.StackOverflowError: stack size 8MB
             at uerj.dcad.Resultado.massa_superplastificante_solidos_aitcin(Resultado.java:400)
             at uerj.dcad.Resultado.massa_superplastificante_aitcin(Resultado.java:406)
             at uerj.dcad.Resultado.volume_superplastificante_solidos_aitcin(Resultado.java:418)
             at uerj.dcad.Resultado.volume_areia_atcin(Resultado.java:492)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
             at uerj.dcad.Resultado.correcao_agua_areia_aitcin(Resultado.java:369)
             at uerj.dcad.Resultado.massa_areia_aitcin(Resultado.java:498)
            at uerj.dcad.Resultado
I/art: Background partial concurrent mark sweep GC freed 36(2816B) AllocSpace objects, 1(13MB) LOS objects, 10% free, 69MB/77MB, paused 946us total 156.280ms
D/Error: ERR: TOTAL BYTES WRITTEN: 12750340
E/JavaBinder: !!! FAILED BINDER TRANSACTION !!!
E/AndroidRuntime: Error reporting crash
                  android.os.TransactionTooLargeException
                      at android.os.BinderProxy.transactNative(Native Method)
                      at android.os.BinderProxy.transact(Binder.java:496)
                      at android.app.ActivityManagerProxy.handleApplicationCrash(ActivityManagerNative.java:4386)
                      at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:95)
                      at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
                      at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
I/Process: Sending signal. PID: 25625 SIG: 9
Disconnected from the target VM, address: 'localhost:8601', transport: 'socket'

Calculus functions

public double agua_material_cimenticio_aitcin(){ // RESULTADO

        return resultado = -log(resistencia_concreto/523.17)/6.255;

    }

    private double massa_agua_ponto_saturacao_superplastificante_aitcin(){

        return resultado = 8.9286 * ponto_saturacao * ponto_saturacao + 29.643 * ponto_saturacao + 101.21;

    }

    public double massa_agua_final_aitcin(){ // RESULTADO

        // correcao_agua_superplastificante_aitcin() = massa_superplastificante_agua_aitcin()

        return resultado = massa_agua_ponto_saturacao_superplastificante_aitcin()-massa_superplastificante_agua_aitcin()+correcao_agua_areia_aitcin()+correcao_agua_brita_aitcin();

    }

    public double correcao_agua_brita_aitcin(){

        return resultado = (-1)*massa_brita_aitcin()*(teor_agua_brita-absorcao_agua_brita)/100;

    }

    public double correcao_agua_areia_aitcin(){

        return resultado = (-1)*massa_areia_aitcin()*(teor_agua_areia-absorcao_agua_areia)/100;

    }

    public double massa_aditivo_mineral1_aitcin(){ // RESULTADO

        return resultado = teor_aditivo_mineral1*massa_agua_ponto_saturacao_superplastificante_aitcin()/(100*agua_material_cimenticio_aitcin());

    }

    public double massa_aditivo_mineral2_aitcin(){ // RESULTADO

        return resultado = teor_aditivo_mineral2*massa_agua_ponto_saturacao_superplastificante_aitcin()/(100*agua_material_cimenticio_aitcin());

    }

    public double massa_superplastificante_aitcin(){ //RESULTADO

        double massa_superplastificante_solidos_aitcin = ponto_saturacao*massa_agua_ponto_saturacao_superplastificante_aitcin()/agua_material_cimenticio_aitcin();

        return resultado = 100*massa_superplastificante_solidos_aitcin/teor_solidos;

    }

    public double massa_superplastificante_agua_aitcin(){

        double massa_superplastificante_solidos_aitcin = ponto_saturacao*massa_agua_ponto_saturacao_superplastificante_aitcin()/agua_material_cimenticio_aitcin();

        return resultado = massa_superplastificante_aitcin()-massa_superplastificante_solidos_aitcin;

    }

    public double massa_cimento_aitcin(){ // RESULTADO

        return resultado = (massa_agua_ponto_saturacao_superplastificante_aitcin()/agua_material_cimenticio_aitcin())-massa_aditivo_mineral1_aitcin()-massa_aditivo_mineral2_aitcin();

    }

    public double massa_brita_aitcin(){

        if (formato_agregado.equals("Alongado")){

            resultado_formato_agregado = 950;

        }else if (formato_agregado.equals("Alongado à Lamelar")){

            resultado_formato_agregado = 975;

        }else if (formato_agregado.equals("Lamelar")){

            resultado_formato_agregado = 1000;

        }else if (formato_agregado.equals("Lamelar à Médio")){

            resultado_formato_agregado = 1025;

        }else if (formato_agregado.equals("Médio")){

            resultado_formato_agregado = 1050;

        }else if (formato_agregado.equals("Médio à Cúbico")){

            resultado_formato_agregado = 1075;

        }else if (formato_agregado.equals("Cúbico")){

            resultado_formato_agregado = 1100;

        }else if (formato_agregado.equals("Cúbico à Arredondado")){

            resultado_formato_agregado = 1125;

        }else if (formato_agregado.equals("Arredondado")){

            resultado_formato_agregado = 1150;

        }

        return resultado = resultado_formato_agregado - correcao_agua_brita_aitcin();

    }

    public double volume_areia_atcin(){

        double volume_superplastificante_solidos_aitcin = (massa_superplastificante_aitcin()/massa_especifica_aditivo_quimico)-massa_superplastificante_agua_aitcin();
        double volume_cimento_aitcin = massa_cimento_aitcin()/massa_especifica_cimento;
        double volume_aditivo_mineral1_aitcin = massa_aditivo_mineral1_aitcin()/massa_especifica_aditivo_mineral1;
        double volume_aditivo_mineral2_aitcin = massa_aditivo_mineral2_aitcin()/massa_especifica_aditivo_mineral2;
        double volume_brita_aitcin = (massa_brita_aitcin()+correcao_agua_brita_aitcin())/massa_especifica_sss_brita;

        return resultado = 1000-massa_agua_ponto_saturacao_superplastificante_aitcin() - volume_superplastificante_solidos_aitcin - volume_cimento_aitcin - volume_aditivo_mineral1_aitcin - volume_aditivo_mineral2_aitcin - volume_brita_aitcin-10*ar_incorporado;

    }

    public double massa_areia_aitcin(){ // RESULTADO

        return resultado = (volume_areia_atcin()-correcao_agua_areia_aitcin())*massa_especifica_sss_areia;

    }

  • Places the part of the code that may be causing the error.

  • ramaral, I put! will have something related to the passing of spinner parameters?!

  • You’re having a stackoverflow error (and it’s not funny with the name of the site kkk) IE, very simply, the amount of resources allocated was not enough for what you want to do. From what I saw in your functions you are calling each other, maybe Voce could rethink the flow to see if this doesn’t end up generating an infinite recursion that ends up using all the resources until give the stack overflow error

1 answer

0

In this case the error is due to one method calling another which in turn calls the first.
This causes a loop infinity, eventually resulting in an error of Stackoverflowerror.

Observe the following two methods:

public double correcao_agua_areia_aitcin(){

    return resultado = (-1)*massa_areia_aitcin()*(teor_agua_areia-absorcao_agua_areia)/100;

}

public double massa_areia_aitcin(){ // RESULTADO

    return resultado = (volume_areia_atcin()-correcao_agua_areia_aitcin())*massa_especifica_sss_areia;

}

correcao_agua_areia_aitcin() flame massa_areia_aitcin()which in turn calls correcao_agua_areia_aitcin().

Browser other questions tagged

You are not signed in. Login or sign up in order to post.