2012-07-30 73 views
0

我是Android開發者的新手。我有一個非常簡單的佈局簡單的「學習」應用程序。佈局顯示只有一個警告(硬編碼字符串...應該使用@string資源),我懷疑是與問題有關。然而,在我的活動代碼中,我有錯誤「R無法解析爲變量」。android R無法解析,但佈局沒有錯誤

這裏是在Java:

package com.example.treefields; 

import android.app.Activity; 
import android.os.Bundle; 

public class TreeFieldsActivity extends Activity 
{ 
    public void onCreate (Bundle savedInstanceState) 
    { 
    super.onCreate(savedInstanceState); 
    setContextView (R.layout.activity_tree_fields); 
    } 
} 

而且,這裏的佈局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <EditText 
     android:id="@+id/editText1" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:ems="10" 
     android:inputType="textMultiLine" 
     android:text="multiline text" /> 

</LinearLayout> 

任何想法?謝謝。

+2

清理並重建您的項目。如果仍未生成R,則報告錯誤。 – Shark 2012-07-30 20:51:12

+2

錯誤可能出現在任何XML文件中,而不僅僅是您的佈局。打開Eclipse的**包資源管理器**窗口,然後按照錯誤圖標到任何地方出現錯誤或使用**問題**窗口。 – Sam 2012-07-30 20:52:19

+1

也嘗試刪除R.java文件。它會重新構建,然後應該是正確的。 – edwoollard 2012-07-30 20:53:58

回答

2

它看起來並不像你甚至包括R.您需要包括資源包這樣:

import your.package.name.R; 

棉絨串警告是像你說的可能不相關的。

+0

這似乎是問題,我還沒有完全理解。我添加了import com.example.textfields.R。我有兩個包 - 我正在學習切換活動,所以我開始使用TextFieldsActivity(工作),然後添加TreeFieldsActivity。前者(樹域)最初是自動生成的,沒有「R」文件的導入。然而,它建成並運行良好。那麼,爲什麼第二個包需要導入? – 2012-07-30 21:31:02

+0

R構建在您的清單中定義的包中。您應該在您訪問資源的所有文件中導入。可能沒有包含的工作沒有使用R包?順便說一句你的活動不需要在不同的包中。 – Bostwickenator 2012-07-30 23:58:45

+0

好的,謝謝你的提示! – 2012-07-31 15:50:27

1

如果您使用的是Eclipse,您可以隨時使用Ctrl + Shift + o讓IDE找出要導入的內容,但是像Bostwickenator說的那樣,您應該確保包含由包生成的R,而不是意外的android.R(因爲這不會解決你創建的任何佈局元素,而是一些Android常見的東西)。

相關問題