2015-03-12 2 views
0

Сначала после проверки об этом в frum здесь я не нашел решение для меня. сейчас, поэтому я запустил приложение и нажимаю на кнопку страта, и когда он должен появиться в другой, активирует его ошибку. журналandroid Resource ID # 0x0

03-12 11:30:04.037: I/Timeline(28116): Timeline: Activity_launch_request  id:com.example.flagchallenge time:81168367 
03-12 11:30:04.157: D/into(28116): [email protected] 
03-12 11:30:04.157: D/into(28116): 32 
03-12 11:30:04.157: D/Result from pic function(28116): canada 
03-12 11:30:04.157: W/ResourceType(28116): No package identifier when  getting value for resource number 0x00000000 
03-12 11:30:04.157: E/ActivityThread(28116): Failed to find resource 
03-12 11:30:04.157: E/ActivityThread(28116):  android.content.res.Resources$NotFoundException: Resource ID #0x0 
03-12 11:30:04.157: E/ActivityThread(28116): at  android.content.res.Resources.getValue(Resources.java:1195) 
03-12 11:30:04.157: E/ActivityThread(28116): at  android.content.res.Resources.getDrawable(Resources.java:729) 
03-12 11:30:04.157: E/ActivityThread(28116): at  android.content.res.Resources.getDrawable(Resources.java:711) 
03-12 11:30:04.157: E/ActivityThread(28116): at  com.example.flagchallenge.ClassicMode.pic_view(ClassicMode.java:132) 
03-12 11:30:04.157: E/ActivityThread(28116): at  com.example.flagchallenge.ClassicMode.onCreate(ClassicMode.java:60) 
03-12 11:30:04.157: E/ActivityThread(28116): at 

Основной код вида деятельности:

public class MainActivity extends Activity implements OnClickListener{ 
private static final String TAG = "Flags Challenge" ;//יצירת טאג למשחק לשימוש בםונקציות כמו exception 
Button start; 
Button time; 
Button reguler; 
DatabaseHandler db = new DatabaseHandler(this); 

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

    start = (Button)findViewById(R.id.start_btn); 
    time = (Button)findViewById(R.id.time); 
    reguler = (Button)findViewById(R.id.reguler); 
    start.setOnClickListener(this); 
    db = new DatabaseHandler(this); 
    creat_rows(); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 

public void onClick(View v) { 
    // TODO Auto-generated method stub 
    start.setVisibility(start.INVISIBLE); 
    time.setVisibility(time.VISIBLE); 
    reguler.setVisibility(reguler.VISIBLE); 

    //Intent s = new Intent(this,ClassicMode.class); 
    //startActivity(s); 

    reguler.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Intent cm = new Intent(MainActivity.this,ClassicMode.class); 
      //Intent c = new Intent(MainActivity.class ,ClassicMode.class); 
      startActivity(cm); 
     } 
    }); 

    time.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent tm = new Intent(MainActivity.this,ClassicMode.class); 
      startActivity(tm); 
      Log.d(TAG, "inside time"); 
     } 
    }); 
} 

public void creat_rows() 
{ 
    Log.d(TAG, "Inserting..."); 
    //image  id name 
    db.addFlag(new Flags("albania",1,"albania")); 
} 
} 

классический режим:

public class ClassicMode extends Activity{ 


String pic;//תמונה של הדגל 
Button answer1;//תשובות 
Button answer2; 
Button answer3; 
Button answer4; 
TextView guess;// 
TextView numOfGuess;// 
DatabaseHandler db = new DatabaseHandler(this); 
String fn; 
int Nguess=3;//מסםר ניחושים 
int Nguesstemp=Nguess; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_second); 

    guess =(TextView)findViewById(R.id.guesses); 
    numOfGuess=(TextView)findViewById(R.id.numOfGuesses); 
    //numOfGuess.setText(Integer.toString(Nguess)); 
    numOfGuess.setText(String.valueOf(Nguesstemp)); 
    Flags f = new Flags(); 
    Random r = new Random();//הדגל שיבחר לשאלה 
    int num = r.nextInt(70);//Up 
    //Log.d("yes", "yes"); 
    //Random ra = new Random();//הדגלים שיהיו בתשובות 
    //int numA = ra.nextInt(4);//Up 

    f = db.getFlag(num);//הצגת הדגל הרנדומלי שיצא 
    // final Flags d = f; // trying to make it final but it dosent help 
    //fn = f.getName().toString(); 
    pic = f.getImage().toString(); 
    pic_view(pic);//מעבר לפונקציה להשמת התמונה של הדגל במשחק 
    //מערך ארבע כפתורים כנגד ארבע תשובות 
    Button [] b = new Button[4]; 
    b[0] = (Button)findViewById(R.id.button1); 
    b[1] = (Button)findViewById(R.id.button2); 
    b[2] = (Button)findViewById(R.id.button3); 
    b[3] = (Button)findViewById(R.id.button4); 

    List<String>Answers=new ArrayList<String>();//מערך תשובות 
    Answers.add(f.getName().toString());//הוספת התשובה הנכונה 
    num = r.nextInt(30); 
    Answers.add(db.getFlag(num).getName().toString());//הוספת 3 תשובות רנדומליות 
    num = r.nextInt(30); 
    Answers.add(db.getFlag(num).getName().toString()); 
    num = r.nextInt(30); 
    Answers.add(db.getFlag(num).getName().toString()); 

    Collections.shuffle(Answers);//ערבוב התשובות 

    for(int i=0;i<Answers.size();i++) 
    { 
     b[i].setText(Answers.get(i));//השמת התשובות מהמהערך למערך הכפתורים 
    } 
} 

@SuppressLint("NewApi") 
public void resetQuiz() 
{ 
    //finish(); 
    recreate(); 
    //numOfGuess.setText(String.valueOf(Nguess)); 
} 

public void check(View v) 
{ 
    Log.d("yes", fn); 
    Button b = (Button)v; 
    String text = b.getText().toString(); 
    if(text.equals(fn)) 
     resetQuiz(); 
    else 
    { 
     if(Nguess==1) 
     { 
      finish();//כאשר מספר הניחושים 
     } 
     Nguess--; 
     Nguesstemp=Nguess; 
     //numOfGuess=(TextView)findViewById(R.id.numOfGuesses); 
     //numOfGuess.setText(Integer.toString(Nguess)); 
     numOfGuess.setText(String.valueOf(Nguesstemp)); 
    } 

} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // TODO Auto-generated method stub 
    return super.onCreateOptionsMenu(menu); 
} 


private void pic_view(String pic2) { 

    // TODO Auto-generated method stub 
    //גישה לדגל לפי שמו וייבוא התמונה 
    Log.d("Result from pic function " , pic2); 
    ImageView imageView = (ImageView)findViewById(R.id.imageView1); 
    String uri ="@drawable/"; 
    uri += pic2; 
    int imageResource = getResources().getIdentifier(uri, pic2, getPackageName());//הצוות התמונה 
    Drawable res= getResources().getDrawable(imageResource);//ציור התמונה 
    imageView.setImageDrawable(res); 

} 
} 

ответ

0

Пожалуйста, попробуйте изменить следующую строку в pic_view(...) от

int imageResource = getResources().getIdentifier(uri, pic2, getPackageName()); 

на

int imageResource = getResources().getIdentifier(pic2, "drawable", getPackageName()); 
+0

украсть же EROR 03-12 11: 56: 02,037: Е/ActivityThread (29783): Не удалось найти ресурсу 03-12 11: 56: 02.037: E/ActivityThread (29783): андроид .content.res.Resources $ NotFoundException: Идентификатор ресурса # 0x0 03-12 11: 56: 02.037: E/ActivityThread (29783): \t at android.content.res.Resources.getValue (Resources.java:1195) 03 -12 11: 56: 02.037: E/ActivityThread (29783): \t at android.content.res.Resources.getDrawable (Resources.java:729) 03-12 11: 56: 02.037: E/ActivityThread (29783): \t at android.content.res.Resources.getDrawable (Resources.java:711) – adids1221

+0

Вы уверены, что ваша выталкиваемая папка c сохранить файл с именем файла (без расширения) так же, как значение pic2? Попробуйте использовать значение «Тост» или «Выйти из системы». – nuuneoi