Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3283836
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 17, 20262026-05-17T20:05:13+00:00 2026-05-17T20:05:13+00:00

I am new at android development and java programming, but I have decided to

  • 0

I am new at android development and java programming, but I have decided to program a drinking game app in android. This app basically simulates a deck a cards, a player clicks a button to draw a card then based on the card thats drawn the player plays a drinking game (ie takes 1 drink, takes 2 drinks…ect).

I have the main program in one java file, and the code that shuffles the card deck and puts the card sequence in an array in other java file. My problem is that whenever a class from the other java file (classicMode.java) is called from the main program (fubar.java), my android program crashes and gives the error :

“The application Drinking Game – FUBAR (process com.games.dg) has stopped unexpectedly. Please try again”.

Heres the code for the main program:

package com.games.dg;

import java.util.Arrays;
import java.util.Collections;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.TextView;
import android.view.View;
import android.view.View.OnClickListener;
import com.games.dg.classicMode;

public class fubar extends Activity 
{
    private Button classic;
    private Button custom;
    private Button help;
    private Button back;
    private Button showCard;
    private TextView txtbox;
    private int showCardClick = 0;
    private classicMode newGame;
    String[] cardDeck;



    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        initControls();
    }

    public void initControls()
    {
     classic = (Button)findViewById(R.id.classicGame);
     custom = (Button)findViewById(R.id.customGame);
     help = (Button)findViewById(R.id.gameHelp);



     // Classic Game is Selected
     classic.setOnClickListener(new OnClickListener()
     {
      public void onClick (View v)
      {
       setContentView(R.layout.gamegui);
    cardDeck = newGame.getCards();

       // Back Button Clicked
       back = (Button)findViewById(R.id.backButton);
       back.setOnClickListener(new OnClickListener()
       {
        public void onClick (View v)
        {
         setContentView(R.layout.main);
         initControls();
         showCardClick = 0;
        }
       });

       //start the game method here
       showCard = (Button)findViewById(R.id.showCard);
       txtbox = (TextView)findViewById(R.id.textBox);
       showCard.setOnClickListener(new OnClickListener()
       {
        public void onClick (View v)
        {
         if (showCardClick <=51)
         {
          txtbox.setText(cardDeck[showCardClick]);
             showCardClick++;
         }
         else
          txtbox.setText("End of Game");

        }
       });
            }
}

and heres the code from my other class that shuffles the deck:

package com.games.dg;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

class classicMode
{

 // Variables that describe number of cards and array cards will be placed in

 public int cardCount = 52;
 public static int[][] cards;



 // Variables that describe the rules when a certain card is drawn
 public String ace = "Take 1 Drink!";
 public String two = "Take 2 Drinks!!";
 public String three = "Take 3 Drinks!!!";
 public String four = "Questions: The Dealer must ask the group a question, everyone else must answer his question with a question of their own...";
 public String five = "Take 5 Drinks!!!!!";
 public String six = "I Never....: The person who draws this card must tell the group something he or she has never done, anyone in the group who did what the dealer has'nt takes a drink";
 public String seven = "Thumbmaster: The person who draws this card is the Thumbmaster for the entire game. Everytime he or she puts his thumb on the table, everyone else must follow. The last person to do so takes  a drink.";
 public String eight = "The Categories!: The Dealer must give a category to the group, the group must then mention brands within that category. (Ex. Dealer says: Cars, brands would be honda, toyota, mazda...)";
 public String nine = "Its Rhyme Time: The Dealer says a word, everyone else in the group must come up with a rhyme for that word, the loser takes a drink";
 public String ten = "Everyone Drinks!";
 public String jack = "Dude's Night Out: All the guys take a drink";
 public String queen = "Ladies Drink for Free: All the girls take a drink";
 public String king = "The Waterfall: The Dealer starts drinking, then another person, then a 3rd person and so on. The second person can not stop drinking until the first person stops, the third person cant stop until the second one stops, and so on. Pray that a heavy drinker doesnt go first!";


 // Shuffles the 2D card matrix, in the matrix each number represents a card

public static void mixup()
 {
  int[] values = {1,2,3,4,5,6,7,8,9,10,11,12,13};
  for(int i=0;i<=3;i++)
  {
   Collections.shuffle(Arrays.asList(values));
   for(int j=0;j<=12;j++)
    cards[j][i]=values[j];
  }

 }

 //Outputs the card order as a 1D array of strings

public String[] getCards()
 {
  String[] card_deck = new String[52];
  int k = 0;
  mixup();

  for(int i=0;i<=12;i++)
  {
   for(int j=0;j<=3;j++)
   {
    if(j==0)
    {
     card_deck[k] = Integer.toString(cards[i][j]) + "of Hearts";
     k++;
    }
    if (j==1)
    {
     card_deck[k] = Integer.toString(cards[i][j]) + "of Spades";
     k++;
    }
    if (j==2)
    {
     card_deck[k] = Integer.toString(cards[i][j]) + "of Clubs";
     k++;
    }
    if (j==3)
    {
     card_deck[k] = Integer.toString(cards[i][j]) + "of Diamonds";
     k++;
    }

   }
  }

  return card_deck;
 }




}

So for instance when the call “cardDeck = newGame.getCards();” or “txtbox.setText(cardDeck[showCardClick]);” is made, the program crashes/
Can anyone help me out?

Thanks in advance!

update, heres my log of what occured when the program started:

D/HomeLoaders(   93):   ----> cleared application list
I/ActivityManager(   50): Displayed activity com.games.dg/.fubar: 1360 ms (total 1360 ms)
D/KeyguardViewMediator(   50): pokeWakelock(5000)
I/ARMAssembler(   50): generated scanline__00000077:03545404_00000A04_00000000 [ 29 ipp] (51 ins) at [0x2d1320:0x2d13ec] in 4688047 ns
I/ActivityManager(   50): Start proc com.android.inputmethod.latin for service com.android.inputmethod.latin/.LatinIME: pid=235 uid=10001 gids={3003, 1015}
D/ddm-heap(  235): Got feature list request
D/dalvikvm(  235): Trying to load lib /system/lib/libjni_latinime.so 0x43758040
D/dalvikvm(  235): Added shared lib /system/lib/libjni_latinime.so 0x43758040
D/AndroidRuntime(  221): Shutting down VM
W/dalvikvm(  221): threadid=3: thread exiting with uncaught exception (group=0x4001aa28)
E/AndroidRuntime(  221): Uncaught handler: thread main exiting due to uncaught exception
E/AndroidRuntime(  221): java.lang.NullPointerException
E/AndroidRuntime(  221):    at com.games.dg.classicMode.mixup(classicMode.java:42)
E/AndroidRuntime(  221):    at com.games.dg.classicMode.getCards(classicMode.java:52)
E/AndroidRuntime(  221):    at com.games.dg.fubar$1.onClick(fubar.java:49)
E/AndroidRuntime(  221):    at android.view.View.performClick(View.java:2344)
E/AndroidRuntime(  221):    at android.view.View.onTouchEvent(View.java:4133)
E/AndroidRuntime(  221):    at android.widget.TextView.onTouchEvent(TextView.java:6510)
E/AndroidRuntime(  221):    at android.view.View.dispatchTouchEvent(View.java:3672)
E/AndroidRuntime(  221):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
E/AndroidRuntime(  221):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
E/AndroidRuntime(  221):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
E/AndroidRuntime(  221):    at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:882)
E/AndroidRuntime(  221):    at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1712)
E/AndroidRuntime(  221):    at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1202)
E/AndroidRuntime(  221):    at android.app.Activity.dispatchTouchEvent(Activity.java:1987)
E/AndroidRuntime(  221):    at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1696)
E/AndroidRuntime(  221):    at android.view.ViewRoot.handleMessage(ViewRoot.java:1658)
E/AndroidRuntime(  221):    at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(  221):    at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(  221):    at android.app.ActivityThread.main(ActivityThread.java:4203)
E/AndroidRuntime(  221):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(  221):    at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(  221):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
E/AndroidRuntime(  221):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
E/AndroidRuntime(  221):    at dalvik.system.NativeStart.main(Native Method)
I/Process (   50): Sending signal. PID: 221 SIG: 3
I/dalvikvm(  221): threadid=7: reacting to signal 3
E/dalvikvm(  221): Unable to open stack trace file '/data/anr/traces.txt': Permission denied
I/ARMAssembler(   50): generated scanline__00000077:03515104_00000000_00000000 [ 27 ipp] (41 ins) at [0x34aa18:0x34aabc] in 572941 ns
I/ARMAssembler(   50): generated scanline__00000077:03515104_00001001_00000000 [ 64 ipp] (84 ins) at [0x34aac0:0x34ac10] in 1098617 ns
I/Process (  221): Sending signal. PID: 221 SIG: 9
I/ActivityManager(   50): Process com.games.dg (pid 221) has died.
I/WindowManager(   50): WIN DEATH: Window{43949420 com.games.dg/com.games.dg.fubar paused=false}
W/UsageStats(   50): Unexpected resume of com.android.launcher while already resumed in com.games.dg
W/InputManagerService(   50): Got RemoteException sending setActive(false) notification to pid 221 uid 10022
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-17T20:05:13+00:00Added an answer on May 17, 2026 at 8:05 pm

    You never actually initialized those references. This is a bit different than C++ where Button button would actually create an instance of the type Button‘. In Java, Button button just creates a reference to it, so you’ll need to say

    newGame = new classicMode();
    

    In your onCreate() (or you can even initialize it like that).
    Btw, it is Java convention to always have class names start in upper case.

    UPDATE: Now that you posted the logcat, the problem lies with the cards array. It’s an array of an array, so you need to initialize the outer array, and then the inner array, i.e.

    cards = new int[52][];
    
    for (int x=0; x<52; x++) {
        cards[x] = new int[52];
    }
    

    or

    cards = new int[52][52];
    

    I haven’t really looked at your code closely, but I should mention that this approach seems very inefficient, just like creating a string for each card type. You should create the string at run-time instead.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm pretty new to Android development, but I have some experience with Java and
I'm relatively new to java and android development so sorry if this is a
I'm quite new to Android development (started 2 days ago) and have been through
I'm new in Android development and I have the next question/problem. I'm playing around
I'm new to Eclipse/Android development so I'm hoping this is something basic that I'm
I am completely new to android, and pretty much a Java newb. I have
I am new to java, eclipse, and android development, so I may be missing
I am new to Android development and have been following the tutorials available on
Being new to test based development, this question has been bugging me. How much
I'm moving a project to the new Android Native Development Kit (i.e. JNI) and

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.