2011-10-04 36 views
0

我有一個主要活動來啓動子活動。在孩子的onCreate()我打電話:如果原始資源文件夾不爲空,setContentView()將返回null

setContentView(R.layout.console); 
TextView tv = (TextView)findViewById(R.id.console); 

這工作發現,只要我的原始資源文件夾爲空。當我放入任何文件時,findViewById()返回null。我找不到爲什麼原始文件夾中的文件之間存在干擾以及缺少查找佈局資源的原因。

+0

請仔細看看您的LogCat輸出,並在您的問題中發佈任何錯誤/異常。 –

+1

每當你從'findViewById()'('null'或錯誤的對象)得到奇怪的結果時,清理你的項目。從Eclipse中,這是從主菜單中的Project | Clean。從螞蟻來說,它是「螞蟻清潔」的。有時'R.java'文件與其他編譯類不同步。 – CommonsWare

+0

聲音可能像構建問題。你有沒有更新到最新的ADT?清理並重建項目? – dymmeh

回答

0

我試圖用NetBeans和Eclipse構建,並且R.java包含所有必需的條目並且沒有ID衝突。如果我在原始文件夾中添加一個文件,文件ID會正確添加到R.java中,而其他內容都不會改變。

在LogCat中,當我嘗試使用TextView電視時,我得到一個空指針異常。在聲明/初始化後立即將tv的值寫入日誌時,tv是空引用。

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    Log.i("Calling onCreate()"); 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.console); 
    TextView tv = (TextView)findViewById(R.id.console); 
    Log.i("tv = " + tv); 
} 

好像因爲活動是由主要活動與

Intent intent = new Intent(getContext(), ConsoleActivity.class); 
int requestCode = Activity.RESULT_OK; 
startActivityForResult(intent, requestCode); 

控制檯活動的佈局文件console.xml lauched是一個問題如下:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <LinearLayout 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

    <ScrollView 
    android:id="@+id/scroller" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent"> 

     <TextView 
     android:id="@+id/console" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"/> 
    </ScrollView> 

    </LinearLayout> 

</LinearLayout> 
0

我找到了解決方法。該代碼是庫的一部分。在庫項目中,我沒有包含原始資源目錄,因爲我沒有使用庫中的原始資源。現在我在庫項目中創建了一個包含一些(虛擬)文件的原始目錄,並且... 在應用程序項目中添加具有文件的原始目錄時出現空指針錯誤消失了miraculousely。

謝謝你的幫助,激勵我。

相關問題