2010-11-22 47 views
3


我正在使用Eclipse Galileo進行Android「Hello,Testing」教程。 (http://developer.android.com/resources/tutorials/testing/helloandroid_test.html)當我嘗試編譯並運行程序時,出現錯誤,提示「com.example.helloandroid.R.id無法解析」。Android編程錯誤

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

請發表你的全部代碼。您可能錯過了導入。 – birryree 2010-11-22 21:01:26

回答

4

這種事情似乎是隨機發生的,即使沒有任何事情做錯了,所以首先嚐試清理你的項目,以強制完成R.java的重建和再生。

如果這樣不能解決問題,您可能需要重新開始,並確保您完全按照項目設置說明進行操作。你對com.example.helloandroid.R的明確引用要求你的項目被命名,而不是com.example.HelloAndroidTest,因爲如果這是你的主類,它可能會結束。如果打開gen /文件夾並查看不在com.example.helloandroid包中的.R.java,那就是您的問題 - 生成的R類的包以及根據需要引用的絕對或相對名稱匹配。

+0

謝謝!我會試一試! – androidGM 2010-11-22 21:08:36

1

編輯HelloAndroid項目的R.java(發現於gen)而不是HelloAndroidTest。找到這個塊

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

這裏的問題是沒有指定id。只需添加

android.id:"@+id/textview" 

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