2012-06-29 35 views
4

http://developer.android.com/training/basics/firstapp/building-ui.html安卓教程錯誤:R 1不能被解析爲一個變量

我一直在下面這個教程,但我有兩個錯誤,無論是「R不能解析爲一個變量」。過去我製作了Android應用程序(簡單的應用程序),並且我記得通過檢查是否有導入R語句(我不這樣做)來解決這個問題,以及項目是否在構建之前已被清理再次(我清理它,我仍然得到錯誤)。我不知道該怎麼做。謝謝!

*我也想提一下,我看到170個匹配的同一個標題的線程,「刪除導入R語句」的解決方案不適用於我的問題(我不認爲) 再次感謝

所有的代碼都是直接從上面的鏈接,但在這裏是爲了方便

activity_my_first.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal"> 
    <EditText android:id="@+id/edit_message" 
     android:layout_weight="1" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:hint="@string/edit_message" /> 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/button_send" /> 
</LinearLayout> 

MyFirstActivity.java

package com.example.myfirstapp; 

import android.os.Bundle; 
import android.app.Activity; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.support.v4.app.NavUtils; 

public class MyFirstActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_my_first); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.activity_my_first, menu); 
     return true; 
    } 


} 

的strings.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="app_name">My First App</string> 
    <string name="edit_message">Enter a message</string> 
    <string name="button_send">Send</string> 
    <string name="menu_settings">Menu Settings</string> 
</resources> 

編輯:當我清理項目,我得到在控制檯此消息:

[2012-06-29 11:12:38 - MyFirstApp] W/ResourceType(6140): Bad XML block: header size 91 or total size 0 is larger than data size 0 [2012-06-29 11:12:38 - MyFirstApp] C:\Users\zhong\workspace\eclipse\MyFirstApp\res\menu\activity_my_first.xml:2: error: Error: No resource found that matches the given name (at 'title' with value '@string/menu_settings').

編輯:添加了一行佈局xml文件<string name="menu_settings">Menu Settings</string> 固定清理項目錯誤,但我仍然無法從兩個R錯誤中運行該項目。

+0

你有沒有清理的項目? – 2012-06-29 02:16:45

+0

是的。我只是注意到當我清理時出現錯誤。我編輯了原帖 – SwimBikeRun

回答

7

我正在通過相同的例子,並有相同(或非常相似)的問題我的方式。

最後我注意到manifest.xml中有一個小小的紅色x。 果然,有人抱怨這一點:

android:label="@string/title_activity_hello_world" > 

於是我說:

<string name="title_activity_hello_world">Hello World</string> 

到strings.xml中,現在它的工作原理。

+0

他們解釋這在下面是公平的! – JMK

1

2件可能的事情

在Android清單中指定的包名是不一樣的Java文件。或者,您的IDE尚未在gen /文件夾中生成R.java文件。再次嘗試構建(儘管出現錯誤),它通常會將其清除。

基本上爲您和在同一個包,以便可以將它稱爲簡單地R.

0

普萊斯確認存在

1-項目文件夾 2沒有誤差產生的R.java文件 - 日食 3-控制檯 4-錯誤日誌的問題查看圖像 enter image description here

+0

有兩個錯誤: setContentView(R.layout.activity_my_first);和 getMenuInflater()。inflate(R.menu.activity_my_first,menu); 〜::〜都說R不能解析成一個變量。 – SwimBikeRun

+0

你是否在項目的gen文件夾中有R.java? –

+0

沒有隻是一個BuildConfig.java – SwimBikeRun

0

你必須確保

  1. 清理項目工程 - >清潔
  2. 的/ res目錄中不包含錯誤(有些文件會顯示 上的文件瀏覽器一個紅色圖標)
  3. 您的進口不包含此行import android.R;
  4. 檢查在AndroidManifest.xml中,屬性包是否具有 正確的值。<manifestxmlns:android="http://schemas.android.com/apk/res/android" package="your.correct.package.name"
3

我在學習本教程時遇到了同樣的問題。 清理項目或清理導入不能解決問題。如何解決問題(簡單地):我退出Eclipse並重新啓動它。

0

這個固定對我來說: https://stackoverflow.com/a/3259974/1538785

好像日食喜歡添加導入線,java文件沒有任何理由。進入你的java文件,點擊ctrl + shift + o並且所有的導入語句都會出現。刪除,上面寫着進口andriod.R

1

android:text="@string/button_send"
這給了錯誤的行:No resource found that matches the given name (at 'text' with value '@string/button_send').

我試圖解決使用tuturial錯誤。但是教程沒有告訴我要逐一寫出所有需要的行。所以我想念在strings.xml中寫"<string name="button_send">Send</string>"

添加上一行後,錯誤消失!我相信這是類似於這個線程中原始問題的東西。

因此,如果我從給定的教程中複製了所有內容,它可能沒有發生,但通過輸入我們自己是我認爲是最好的學習方式。

1

我找到了解決辦法:

去你project->res->menu比打開XML文件存在並刪除這一行:

android:title="@string/menu_settings" 

我刪除它,它開始工作,3小時相同的後在問題部分警告。

它甚至道理,當你讀它,「在title與價值@string/menu_settings

+0

我的意思是res->菜單 – yarin

0

右鍵單擊該項目,選擇「Android的工具」 - >「添加支持庫」>「Android的支持庫,修訂11」 >「Install」

0

在我的情況下,問題是我在64位Linux上,並且沒有安裝所需的32位庫,這意味着構建工具無法生成R.java。

運行此命令,然後清洗工程,解決了這一問題:

sudo apt-get install ia32-libs 
0

確保在SDK中的可執行文件(AAPT等)/構建工具/ Android的XYZ/*是,如果你是可執行在你的Linux機器上運行默認下載...

+0

這是一個很老的問題,已經被接受的答案 – laaposto

0

我嘗試做第一個教程時有同樣的錯誤。爲了讓應用程序運行我編輯MainActivity.java所以它看起來像這樣

package com.example.myfirstapp; 

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

公共類MainActivity擴展活動{

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

} 

}

相關問題