2013-04-09 105 views
1

我仍然在學習編寫代碼,但我永久編碼的應用程序無法在兩個不同的設備上工作。 Eclipse(最新的android sdk)能成爲錯誤還是我的代碼錯誤每一個應用程序? 它的力量接近2個設備使用Eclipse(Android)奇怪的錯誤

public class MainActivity extends Activity { 


Button dugme = (Button) findViewById(R.id.dugme); 

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

    dugme.setOnClickListener(new View.OnClickListener(){ 

@Override 
    public void onClick(View v) { 
      Cao(); 
     } 
     }); 



} 
private void Cao(){ 
    Intent Cao = new Intent(this, Cao.class); 
    startActivity(Cao); 
}} 

這是曹類

public class Cao extends Activity{ 


protected void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.cao); 
}} 

和明顯

<?xml version="1.0" encoding="utf-8"?> 
    <manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.book1" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
    android:minSdkVersion="8" 
    android:targetSdkVersion="17" /> 

    <application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.example.book1.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     </activity> 
     <activity 
     android:name="com.example.book1.Cao" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.Action.VIEW" /> 

      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
     </activity> 
     </application></manifest> 
+0

你得到了什麼錯誤? – 2013-04-09 12:55:04

+0

強制關閉2臺設備 – user2109172 2013-04-09 12:55:27

+1

強制關閉不是錯誤,這是一個問題。我們需要知道究竟*如何*它墜毀,而不是_that_它墜毀 – 2013-04-09 13:02:43

回答

5

儘量把

Button dugme = (Button) findViewById(R.id.dugme); 

這條線在你的onCreate方法。一個類只有變量和方法。這條線是定義。所以我認爲這只是你的代碼中的問題。除了你的代碼沒有錯。

+0

其工作,謝謝:) – user2109172 2013-04-09 13:05:02

+1

這是肯定的問題。此行將在施工中執行,這意味着它不會找到任何ID,並且dugme將爲空!接得好! – Budius 2013-04-09 13:07:34

0

此行是錯誤的:

Button dugme = (Button) findViewById(R.id.dugme); 

不是因爲它並不位於onCreate方法,但由於該行之前出現:

setContentView(R.layout.activity_main); 

及其產生的原因是:如果你沒有將佈局設置爲活動的內容視圖,因此無法使用findViewById方法,因爲沒有可以找到此視圖的位置(您尚未設置佈局)。

1

將這個線路

​​

setContentView(R.layout.activity_main) 

的Android根據其每個佈局的xml需要的view_id的每個參考

認爲如果機器人需要視圖REFERENCE_ID設定前我們甚至不能保持相同的佈局兩個不同佈局xml的視圖ID的名稱。