2014-10-03 2 views
0

мое приложение когда-то падает, я знаю, где, но я не знаю почему. Пожалуйста, смотрите этот код:Кнопка исключения Nullpointer Android

private Button btFacebook  
@Override 
public final void onCreate(Bundle savedInstanceState) 
{ 
    .... 
    btFacebook  = (Button) findViewById(R.id.bt_fb_zaloguj); 
    btFacebook.setText(getResources().getString(R.string.act_logowanie_bt_facebook).toUpperCase()); //line crash 
    .... 
} 

Почему btFacebook иногда равен нулю?

EDIT:

> java.lang.RuntimeException: Unable to start activity ComponentInfo{pl.gosell.ghmaster/pl.gosell.ghmaster.activity.ActSplash}: java.lang.NullPointerException 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2305) 
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2363) 
android.app.ActivityThread.access$900(ActivityThread.java:161) 
android.app.ActivityThread$H.handleMessage(ActivityThread.java:1265) 
android.os.Handler.dispatchMessage(Handler.java:102) 
android.os.Looper.loop(Looper.java:157) 
android.app.ActivityThread.main(ActivityThread.java:5356)8at java.lang.reflect.Method.invokeNative(Native Method) 
java.lang.reflect.Method.invoke(Method.java:515) 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265) 
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081) 
dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.NullPointerException 
pl.gosell.ghmaster.activity.ActSplash.onActivityData(ActSplash.java:184) 
com.android.lifter.activity.ActivityBase.onCreate(ActivityBase.java:99) 
android.app.Activity.performCreate(Activity.java:5426) 
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2269) 
19... 11 more 
+1

Где мой logcat? опубликуйте его. –

+0

Если ваше приложение терпит крах при загрузке, возможно, из-за вышеизложенного, если он сбой после загрузки, это означает, что любая функциональность, которую делает эта кнопка, вызывает крушение. Единственный способ ответить на это - если вы разместите логарифм ошибки, иначе люди будут давать ответы вслепую. – NightwareSystems

ответ

2

Вы пропустили

setContentView(R.layout.your_layout); 

, а затем вы инициализирован кнопку как:

protected void onCreate(Bundle savedInstanceState) 
{ 
super.onCreate(savedInstanceState); 
setContentView(R.layout.your_layout); 
btFacebook  = (Button) findViewById(R.id.bt_fb_zaloguj); 
btFacebook.setText(getResources().getString(R.string.act_logowanie_bt_facebook).toUpperCase());  //line crash 
.... 
} 
+0

Спасибо за ответ, но я не пропустил setContentView (R.layout.your_layout); – michael

+0

@michael Это абсолютно подделка, о которой вы сказали ** мое приложение когда-то сбой ** –

1

Глядя на ваш код, если и пропустил это.

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

затем добавить его

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

    btFacebook = (Button) findViewById(R.id.bt_fb_zaloguj); 
    btFacebook.setText(getResources().getString(R.string.act_logowanie_bt_facebook).toUpperCase()); 
+0

Спасибо за ответ, но я не пропустил super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); – michael

+0

Хорошо покажите свой логарифм. – Piyush

-1

Если вы уже в операцию можно упростить вы вызываете как этот

this.getString(R.string.act_logowanie_bt_facebook) 

Кроме того, если строка есть оно не должно давать исключение. Я думаю, что исключение, которое вы получаете, связано с Button. Объект buttonhow имеет значение null. Можете ли вы взглянуть на свое мнение и проверить, совпадает ли идентификатор?

Смежные вопросы