2011-05-14 83 views
8
package com.elfapp; 
import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class MainActivity extends Activity implements OnClickListener { 

    private Button btn_Login; 
    private EditText et_UserName; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     btn_Login = (Button) findViewById(R.id.button_login); 
     btn_Login.setOnClickListener(this); 

     et_UserName = (EditText) findViewById(R.id.editText_userName); 
    } 

    public void onClick(View v) { 
     if (v.equals(btn_Login)) { 
       // skriver ut en toast när man klickar på knappen 
      Toast.makeText(MainActivity.this, "Ansluter till server...", Toast.LENGTH_SHORT).show(); 

       // används i debuggern för att påvisa att programmet exekverat hit 
      Log.v("ThisApp", "onClick Successful"); 

       // TODO skickar det som står i et_UserName till controller (genom TCP/IP), som ska kolla om användaren finns 
      // send et_UserName.getText().toString() to controller 

       // if(username exists) 
      Intent intent = new Intent(this, RoomActivity.class); 
      this.startActivity(intent); 
     } 
    } 

} 

我含setContentView(R.layout.main); 不知道的錯誤/例外的是什麼,因爲我不習慣在Eclipse工作線得到一個錯誤..setContentView(R.layout.main);錯誤

+0

你的錯誤在哪裏? – MByD 2011-05-14 15:32:24

+1

主佈局是否存在? – Egor 2011-05-14 15:38:55

+0

是的,這是在res /佈局/,我甚至確保它保存並通過ctrl + S更新。 – 2011-05-14 15:42:56

回答

12

只要採取2步遠,問題會更容易得到解決:

第1步: 清理項目通過點擊Project - > Clean。

第2步: 通過單擊項目 - >構建全部來重建您的項目。

還要確保您的佈局xml文件沒有語法錯誤,並且您沒有任何具有不可接受名稱的圖像(例如圖像名稱之間的「 - 」)。

另外我請你看看問題窗口,讓我知道在那裏顯示什麼錯誤。

0

這是已經解決了嗎?

我也有這個問題。我只是通過清理項目來解決它。

項目>下面選擇清潔>潔淨工程>檢查[項目的名稱]

+0

是的,現在工作 – 2011-05-23 12:48:49

4

使用NetBeans 7.0:

如果修復導入R.java已經爲您的項目生成之前(建立它的第一次之前),它會添加一行:

import android.R; 

這將覆蓋您正在嘗試引用的本地R.java。

刪除該行爲我解決了錯誤。

+0

在IntelliJ 11.0.1中出現同樣的問題解決方法是刪除import android.R;以及 – Jviaches 2012-01-11 20:54:07

14

這只是剛剛發生在我的一分鐘前,但經過一段時間的研究,並閱讀這篇文章,我注意到這一點。

有一個自定義的R類與你的應用程序名稱,所以當你嘗試導入缺少的類(在Eclipse中,按Ctrl + Shift + O導入缺少的類(在Mac上Cmd + Shift + O)),你應該看到兩個更多鈔票班正常:

import android.R; 

和自定義類與您的項目命名空間:

import com.yourname.yourapp.R; 

如果選擇自定義類,問題解決了!

+0

謝謝,解決了我的問題 – Bevor 2012-08-19 16:06:27

3

第1步: import android。*;

第2步: 清理項目

第3步: 享受!

+0

是的,它從android.R中更改;→android。*;修復它,然後右鍵單擊項目左窗格和做'清理和建設'。這是與Netbeans。 – gimmegimme 2017-02-04 16:24:35

1

如果你有不同類別的多個包那麼這將是混亂的:試試這個:

進口package_name_from_AndroidManifest.R;

0

如果eclipse意外地錯誤地編譯main.xml,通常會發生這個問題。 最簡單的解決方案是刪除gen目錄中的R.java。 一旦我們刪除,比月食將產生最新的main.xml

0

只需將新的R.java基地:

  1. 右鍵單擊您的項目。

  2. 轉到屬性。

  3. 選擇android(左側面板中的第二個選項)。

  4. 單擊「添加...」(在庫中),選擇您的項目。

  5. 點擊確定。

  6. 最後,清理你的項目。

如果這不起作用,請確保「android-support-v7-appcompat」位於您的Project Explorer中。 C:/android-sdks\extras\android\support\v7\appcompat

+3

花點時間閱讀幫助中心的[編輯幫助](http://stackoverflow.com/editing-help)。堆棧溢出的格式與其他站點不同。吹牛也是。 – 2015-10-10 19:25:14

0

使用代碼:

如果它不存在,你可以通過導入一個簡單的項目中添加它的setContentView(R.layout.activity_main);而不是ofsetContentView(R.layout.main);