2012-12-20 119 views
3

我一直在這個應用程序今天,我似乎無法弄清楚代碼有什麼問題。Rock,Paper,Scissors,Lizard,Spock Android應用程序

當我檢查時,沒有語法錯誤。但是,當我試圖運行和調試它,它說

"Source not found" on "ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 2106

它給我的選項,選擇其他路徑,但唯一可用的是默認設置。我編碼錯了嗎?我能做些什麼來解決這個問題?

這是logcat的:

12-20 22:12:29.722: I/System.out(1518): debugger has settled (1479) 
12-20 22:12:30.172: W/Trace(1518): Unexpected value from nativeGetEnabledTags: 0 
12-20 22:12:30.222: W/Trace(1518): Unexpected value from nativeGetEnabledTags: 0 

這裏是我的源文件:

package com.example.rockpaperscissorlizardspock; 
import java.util.Random; 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.*; 
import android.view.View.OnClickListener; 

public class rockpaperscissorlizardspock extends Activity { 
    /** Called when the activity is first created. */ 

    private TextView resultText; 
    private Button play, reset; 
    private ImageButton scissors, paper, rock, lizard, spock; 
    private int paperimg, paper_pressedimg, scissorsimg, scissors_pressedimg,  rockimg, rock_pressedimg, lizardimg, lizard_pressedimg, spockimg, spock_pressedimg; 
     private ImageView compSciss, compPaper, compRock, compLiz, compSpock; 
    Random rand = new Random(); 
    int compChoice = 0; 
    String pChoice =""; 
    String cChoice = ""; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Initialize(); 
    } 

    /** initialize all of the components*/ 
    private void Initialize() 
    { 
     play = (Button) findViewById(R.id.button1); 
     reset = (Button) findViewById(R.id.button2); 
     resultText = (TextView) findViewById(R.id.resultText); 
     lizard = (ImageButton) findViewById(R.id.imageButton4); 
     spock = (ImageButton) findViewById(R.id.imageButton5); 
     scissors = (ImageButton) findViewById(R.id.imageButton3); 
     paper = (ImageButton) findViewById(R.id.imageButton2); 
     rock = (ImageButton) findViewById(R.id.imageButton1); 
     compSciss = (ImageView) findViewById(R.id.computerScissors); 
     compPaper = (ImageView) findViewById(R.id.computerPaper); 
     compRock = (ImageView) findViewById(R.id.computerRock); 
     spockimg = R.raw.spock; 
     spock_pressedimg = R.raw.spock_pressed; 
     lizardimg = R.raw.lizard; 
     lizard_pressedimg = R.raw.lizard_pressed; 
     paperimg = R.raw.paper; 
     paper_pressedimg = R.raw.paper_pressed; 
     scissorsimg = R.raw.scissors; 
     scissors_pressedimg = R.raw.scissors_pressed; 
     rockimg = R.raw.rock1; 
     rock_pressedimg = R.raw.rock1_pressed; 

     /**set the button Listeners*/ 
     play.setOnClickListener(new OnClickListener(){ 
      public void onClick(View arg0){ 
       play(); 
      } 
     }); 

     reset.setOnClickListener(new OnClickListener(){ 
      public void onClick(View arg0){ 
       paper.setImageResource(paperimg); 

       rock.setImageResource(rockimg); 
       scissors.setImageResource(scissorsimg); 
       lizard.setImageResource(lizardimg); 
       spock.setImageResource(spockimg); 
       compPaper.setImageResource(paperimg); 
       compRock.setImageResource(rockimg); 
       compSciss.setImageResource(scissorsimg); 
       compLiz.setImageResource(lizardimg); 
       compSpock.setImageResource (spockimg);    
       pChoice = ""; 
       cChoice = ""; 
       play.setEnabled(false); 
       reset.setEnabled(true); 
       scissors.setEnabled(true); 
       paper.setEnabled(true); 
       rock.setEnabled(true); 
       lizard.setEnabled(true); 
       spock.setEnabled(true); 
       resultText.setText(""); 
      } 
     }); 

     /* 
     * Declaring what happens when specific choices are made. 
     */ 

     scissors.setOnClickListener(new OnClickListener(){ 
      public void onClick(View arg0){  
        scissors.setImageResource(scissors_pressedimg); 
        paper.setImageResource(paperimg); 
        rock.setImageResource(rockimg); 
        spock.setImageResource(spockimg); 
        lizard.setImageResource(lizardimg); 
        pChoice = "S"; 
        play.setEnabled(true); 
      } 
     }); 

     paper.setOnClickListener(new OnClickListener(){ 
      public void onClick(View arg0){ 
        paper.setImageResource(paper_pressedimg); 
        scissors.setImageResource(scissorsimg); 
        spock.setImageResource(spockimg); 
        rock.setImageResource(rockimg); 
        lizard.setImageResource(lizardimg); 
        pChoice = "P"; 
        play.setEnabled(true); 
      } 
     }); 

     rock.setOnClickListener(new OnClickListener(){ 
      public void onClick(View arg0){ 
       rock.setImageResource(rock_pressedimg); 
       scissors.setImageResource(scissorsimg); 
       paper.setImageResource(paperimg); 
       spock.setImageResource(spockimg); 
       lizard.setImageResource(lizardimg); 
       pChoice = "R"; 
       play.setEnabled(true); 
      } 
     }); 

     lizard.setOnClickListener(new OnClickListener(){ 
      public void onClick(View arg0){ 
       lizard.setImageResource(lizard_pressedimg); 
       spock.setImageResource(spockimg); 
       rock.setImageResource(rockimg); 
       scissors.setImageResource(scissorsimg); 
       paper.setImageResource(paperimg); 
       pChoice = "L"; 
       play.setEnabled(true); 
      } 
     }); 

     spock.setOnClickListener(new OnClickListener(){ 
      public void onClick(View arg0){ 
       spock.setImageResource(spock_pressedimg); 
       lizard.setImageResource(lizardimg); 
       rock.setImageResource(rockimg); 
       scissors.setImageResource(scissorsimg); 
       paper.setImageResource(paperimg); 
       pChoice = "SP"; 
       play.setEnabled(true); 
      } 
     }); 

    } 

    /**The method that chooses the computer's move and compares 
    * to the player's move. 
    */ 
    public void play() 
    { 
     compChoice = rand.nextInt(5); 

     if(compChoice == 0) 
     { 
      cChoice = "R"; 
      compRock.setImageResource(rock_pressedimg); 
      } 
     else if(compChoice == 1){ 
      cChoice = "P"; 
      compPaper.setImageResource(paper_pressedimg); 
     }  
     else if(compChoice == 2) 
     { 
      cChoice = "S"; 
      compSciss.setImageResource(scissors_pressedimg); 
      } 
     else if(compChoice == 3) 
      { 
      cChoice = "L"; 
      compLiz.setImageResource(lizard_pressedimg); 
      } 
     else if(compChoice == 4) 
     { 
     cChoice = "SP"; 
     compSpock.setImageResource(spock_pressedimg); 
     } 

    check(); 
} 

/** 
* Compares the Computer's and the Player's moves. 
*/ 
public void check() 
{ 
    if(pChoice == "R") //Rock 
    { 
     if(cChoice == "R") 
      resultText.setText("Draw"); 

     else if(cChoice == "P") 
      resultText.setText("You Lose"); 

     else if(cChoice == "S") 
      resultText.setText("You Win"); 

     else if(cChoice == "L") 
      resultText.setText("You Win"); 

     else if(cChoice == "SP") 
      resultText.setText("You Lose"); 
    } 

    else if(pChoice == "P") //Paper 
    { 
     if(cChoice == "R") 
      resultText.setText("You Win"); 

     else if(cChoice == "P") 
      resultText.setText("Draw"); 

     else if(cChoice == "S") 
      resultText.setText("You Lose"); 

     else if(cChoice == "SP") 
      resultText.setText("You Win"); 

     else if(cChoice == "L") 
      resultText.setText("You Lose"); 


    } 

    else if(pChoice == "S") //Scissors 
    { 
     if(cChoice == "R") 
      resultText.setText("You Lose"); 

     else if(cChoice == "P") 
      resultText.setText("You Win"); 

     else if(cChoice == "S") 
      resultText.setText("Draw"); 

     else if(cChoice == "L") 
      resultText.setText("You Win"); 

     else if(cChoice == "SP") 
      resultText.setText("You Lose"); 


    } 

    else if(pChoice == "L") //Lizard 
    { 
     if(cChoice == "R") 
     resultText.setText("You Lose"); 

     else if(cChoice == "L") 
     resultText.setText("Draw"); 

     else if(cChoice == "SP") 
     resultText.setText("You Win"); 

     else if(cChoice == "S") 
     resultText.setText("You Lose"); 

     else if(cChoice == "P") 
     resultText.setText("You Win"); 
    } 

    else if(pChoice == "SP") //Spock 
    { 
     if(cChoice == "SP") 
      resultText.setText("Draw"); 

     else if(cChoice == "L") 
      resultText.setText("You Lose"); 

     else if(cChoice == "S") 
      resultText.setText("You Win"); 

     else if(cChoice == "P") 
      resultText.setText("You Lose"); 

     else if(cChoice == "R") 
      resultText.setText("You Win"); 

    } 

    gameOver(); 
} 


/** 
* Runs at the end of each round. Disables all of the buttons 
* except for the reset button. 
*/ 
public void gameOver() 
{ 
    play.setEnabled(false); 
    scissors.setEnabled(false); 
    rock.setEnabled(false); 
    paper.setEnabled(false); 
    spock.setEnabled(false); 
    lizard.setEnabled(false); 
    reset.setEnabled(true); 
} 
+0

+1我剛剛在一個小時前看過大爆炸理論插曲;) – Aaron

+2

我實際上開始做這樣一個應用程序,我自己,哈,但是我放棄了它爲任何可預見的未來。 :)在更相關的說明中,您可以發佈完整的logcat嗎? – ninetwozero

+0

順便說一句,比較字符串時,使用'.equals()'方法。對於包括字符串在內的任何對象,'=='都不是**可靠的。 –

回答

1

您試圖單步進入ActivityThread類。該類的源在SDK中不可用。總之沒有錯。

+0

爲什麼它不能在我的手機或模擬器上工作呢? – booky99

+0

當你沒有源時,你根本無法調試一個類。繼續撥打電話以取回您的代碼。 – Henry

+0

對不起,我還是不明白。我剛開始使用android開發。你能進一步解釋嗎? – booky99

相關問題