2012-05-06 80 views
0

我使用「Sams教你24小時Android應用程序開發」一書。將LOG.i()添加到程序

得到這個程序

package com.androidbook.droid1; 

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

/** 
* @author Trashcan 
* 
*/ 
public class Droid1Activity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     private static final String TAG = "app_name"; 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Log.i(TAG,"WTF is going on ?"); 
    } 
} 

http://developer.android.com/reference/android/util/Log.html是它的API。

一直在嘗試着,並且一直沒有得到Eclipse接受它的任何想法。

+0

這裏的問題究竟是什麼? –

回答

0

您無法在方法中定義static變量。重構您的代碼,以便TAG的聲明處於課程級別。例如:

package com.androidbook.droid1; 

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

/** 
* @author Trashcan 
* 
*/ 
public class Droid1Activity extends Activity { 

    private static final String TAG = "app_name"; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     Log.i(TAG,"WTF is going on ?"); 
    } 
} 
+0

工作,把字符串移動了更長的幾行,它像一個魅力工作。 – AGZ

+0

雖然,你明白,它不一定會引起變化,它會將其移出該方法。 – gobernador

3

有一條線不應該在方法中,但不在方法中。難道你不會收到警告嗎?

+0

是的,我忘了那個。 參數TAG的非法修飾符;只有最後被允許\t Droid1Activity.java \t /小時1 - Droid1/src/com/androidbook/droid1 \t第16行\t Java問題 – AGZ

+1

確切地說,這是什麼告訴你有關第16行(提示:你不能指定可視性和靜態爲一個局部變量)?該行不屬於該方法。 –

0

嘗試撥打super.onCreate(savedInstanceState)先在onCreate()。我不確定這是否能解決任何問題,但我無法確切知道你的問題。

此外,在這種特殊情況下使用Log.wtf()似乎更合適,但這是我個人的觀點。

+1

哈哈...我不知道Android有一個Log.wtf() –

+0

這是新的,所以我會測試更多的東西。正如已經知道的那樣,這主要用於Eclipse調試器。謝謝回覆。 – AGZ