Ошибка программирования Android - PullRequest
3 голосов
/ 22 ноября 2010


Я делаю учебник по Android «Hello, Testing» с использованием Eclipse Galileo.(http://developer.android.com/resources/tutorials/testing/helloandroid_test.html) Когда я пытаюсь скомпилировать и запустить программу, я получаю сообщение об ошибке «com.example.helloandroid.R.id не может быть разрешен».

package com.example.helloandroid.test;  
import com.example.helloandroid.HelloAndroid;  
import android.test.ActivityInstrumentationTestCase2;  
import android.widget.TextView;

public class HelloAndroidTest extends ActivityInstrumentationTestCase2<HelloAndroid>  
{    
    private HelloAndroid mActivity;  // the activity under test    
    private TextView mView;          // the activity's TextView (the only view)    
    private String resourceString;    

    public HelloAndroidTest() 
    {      
        super("com.example.helloandroid", HelloAndroid.class);    
    }    

    @Override    
    protected void setUp() throws Exception 
    {        
        super.setUp();        
        mActivity = this.getActivity();        
        mView = (TextView) mActivity.findViewById(com.example.helloandroid.R.id.textview);        
        resourceString = mActivity.getString(com.example.helloandroid.R.string.hello);    
    }    

    public void testPreconditions() 
    {      
        assertNotNull(mView);    
    }    

    public void testText() 
    {      
        assertEquals(resourceString,(String)mView.getText());    
    }
}  

Спасибо за любую помощьпосоветуйте что можете предложить!

Ответы [ 2 ]

4 голосов
/ 23 ноября 2010

Похоже, что такого рода вещи случаются случайным образом, даже если ничего не сделано неправильно, поэтому сначала попробуйте очистить ваш проект, чтобы вызвать полную перестройку и регенерацию R.java.

Если это не помогает,Вы можете начать все сначала и быть уверенным, что точно следуете инструкциям по настройке проекта.Ваша явная ссылка на com.example.helloandroid.R требует, чтобы ваш проект назывался так, а не com.example.HelloAndroidTest, так как это может закончиться, если это ваш основной класс.Если вы откроете папку gen / и увидите файл .R.java, которого нет в пакете com.example.helloandroid, это ваша проблема - пакет сгенерированного класса R и абсолютное или относительное имя, к которому вы обращаетесь по необходимостичтобы соответствовать.

1 голос
/ 06 июля 2011

Отредактируйте R.java (найден в gen) проекта HelloAndroid, а не HelloAndroidTestНайти этот блок

<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
/>

Здесь проблема в том, что идентификатор не указан.просто добавьте

android.id:"@+id/textview"

т.е.

<TextView  
    android:id="@+id/textview"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello"
/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...