Autore Topic: Applicazione crasha quando richiamo un metodo  (Letto 345 volte)

Offline GigiLoria

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung J5
  • Sistema operativo:
    Windows 10
Applicazione crasha quando richiamo un metodo
« il: 19 Maggio 2017, 19:37:30 CEST »
0
Sto facendo un gioco di carte, mi sono creato una classe con tutti i metodi per inserire le carte nel mazzo, mischiarlo, distribuire le carte ecc... Ora però quando richiamo un metodo da questa classe mi crasha l'applicazione
QUESTA E' LA CLASSE PRINCIPALE

Codice (Java): [Seleziona]
public class Game extends AppCompatActivity {
    private Gioco pigliatutto; //necessario per richiamare i metodi
    private Carta mazzo[]=new Carta[40];
    private Carta manogiocatore[]=new Carta[3];
    private Carta manoavversario[]=new Carta[3];
    private static int pntGiocatore,pntAvversario; //punti per decretare vincitore
    private static int cartescoperte; //numero di carte a terra

protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_game);
  pigliatutto.inserimento(mazzo); //inserisce carte nel mazzo
  pigliatutto.mischia(mazzo); //mischio il mazzo

QUESTA E' LA CLASSE DA DOVE PRENDO QUESTI METODI
Codice (Java): [Seleziona]
public class Gioco
{
public void inserimento(Carta mazzo1[])
    {
        String image;
        int valcarte=1,i;
        for(i=0;i<10;i++)
        {
            image="denari"+valcarte;
            mazzo1[i]=new Carta("denari",valcarte,image);
            valcarte++;
            image="";
        }
        valcarte=1;
        for(i=10;i<20;i++)
        {
            image="bastoni"+valcarte;
            mazzo1[i]=new Carta("bastoni",valcarte,image);
            valcarte++;
            image="";
        }
        valcarte=1;
        for(i=20;i<30;i++)
        {
            image="spade"+valcarte;
            mazzo1[i]=new Carta("spade",valcarte,image);
            valcarte++;
            image="";
        }
        valcarte=1;
        for(i=30;i<40;i++)
        {
            image="coppe"+valcarte;
            mazzo1[i]=new Carta("coppe",valcarte,image);
            valcarte++;
            image="";
        }
    }
    public void mischia(Carta mazzo1[])
    {
        Carta tmp=new Carta(null,0,null);
        Random r=new Random();
        int k,x; //k=posizione carta da mischiare x=posizione in cui verrà effettuato lo scambio di carte
        for(int i=0;i<40;i++)
        {
            k=r.nextInt(40);
            x=r.nextInt(40);
            tmp=mazzo1[x];
            mazzo1[x]=mazzo1[k];
            mazzo1[k]=tmp;
        }
    }

Se invece di richiamare il metodo, scrivo il suo contenuto, l'applicazione funziona, però ovviamente non posso a mettermi a scrivere ogni volta l'intero metodo... Qualche soluzione?

Offline tonno16

  • Utente storico
  • *****
  • Post: 1230
  • Respect: +60
    • Mostra profilo
  • Dispositivo Android:
    moto g
  • Play Store ID:
    Diego Tonini
  • Sistema operativo:
    OpenSuse
Re:Applicazione crasha quando richiamo un metodo
« Risposta #1 il: 19 Maggio 2017, 20:04:15 CEST »
0
Che errore hai?

Offline iClaude

  • Utente normale
  • ***
  • Post: 275
  • Respect: +19
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S8
  • Sistema operativo:
    Windows 10
Re:Applicazione crasha quando richiamo un metodo
« Risposta #2 il: 19 Maggio 2017, 20:12:49 CEST »
0
Quando chiami:
pigliatutto.inserimento(mazzo);
l'oggetto pigliatutto di tipo Gioco non è stato istanziato.
Per cui o crei un'istanza di Gioco oppure rendi i suoi metodi static (non ho letto tutto il codice, è solo un'indicazione di come eliminare l'errore).
Ciao.

Offline GigiLoria

  • Nuovo arrivato
  • *
  • Post: 5
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung J5
  • Sistema operativo:
    Windows 10
Re:Applicazione crasha quando richiamo un metodo
« Risposta #3 il: 19 Maggio 2017, 20:43:07 CEST »
0
Quando chiami:
pigliatutto.inserimento(mazzo);
l'oggetto pigliatutto di tipo Gioco non è stato istanziato.
Per cui o crei un'istanza di Gioco oppure rendi i suoi metodi static (non ho letto tutto il codice, è solo un'indicazione di come eliminare l'errore).
Ciao.

ho fatto un errore proprio da novellino, grazie mille