2016-10-21 12 views
-2

這是聊天App的AcceptCahatActivity文件
這是來自backendless.com的示例。 這是compilin沒有錯誤。但是這個應用程序在啓動後關閉。 「不幸的是應用程序已經停止」錯誤。應用不幸停止。幫助/在這裏登錄

package com.backendless.chat.messaging; 

import android.app.Activity; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.Toast; 
import com.backendless.Backendless; 
import com.backendless.services.messaging.MessageStatus; 
import com.backendless.messaging.PublishOptions; 
import com.backendless.services.messaging.PublishStatusEnum; 

public class AcceptChatActivity extends Activity 
{ 
private Button acceptButton, declineButton; 
private TextView chatInvitationTextView; 

private PublishOptions publishOptions; 
private String subtopic; 
private String companionNickname; 

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

Intent currentIntent = getIntent(); 
subtopic = currentIntent.getStringExtra("subtopic"); 
companionNickname = subtopic.split("_")[ 0 ]; 

initUI(); 

Backendless.setUrl(Defaults.SERVER_URL); 
Backendless.initApp(this, Defaults.APPLICATION_ID, Defaults.SECRET_KEY, Defaults.VERSION); 

publishOptions = new PublishOptions(); 
publishOptions.setSubtopic(subtopic); 
} 

private void initUI() 
{ 
acceptButton = (Button) findViewById(R.id.acceptButton); 
declineButton = (Button) findViewById(R.id.declineButton); 
chatInvitationTextView = (TextView) findViewById(R.id.chatInvitationText); 

chatInvitationTextView.setText(String.format(getResources().getString(R.string.chat_invitation_message), companionNickname)); 


acceptButton.setOnClickListener(new View.OnClickListener() 
{ 
    @Override 
    public void onClick(View v) 
    { 
    onAccept(); 
    } 
    }); 

declineButton.setOnClickListener(new View.OnClickListener() 
{ 
    @Override 
    public void onClick(View v) 
    { 
    onDecline(); 
    } 
}); 
} 

private void onAccept() 
{ 
    Intent nextIntent = new Intent(this, ChooseNicknameActivity.class); 
nextIntent.putExtra("owner", false); 
nextIntent.putExtra("subtopic", subtopic); 
nextIntent.putExtra("companionNickname", companionNickname); 
startActivity(nextIntent); 
finish(); 
} 

private void onDecline() 
{ 
Backendless.Messaging.publish((Object)  
DefaultMessages.DECLINE_CHAT_MESSAGE, publishOptions, new  
DefaultCallback<MessageStatus>(this) 
{ 
    @Override 
    public void handleResponse(MessageStatus response) 
    { 
    super.handleResponse(response); 
    if(response.getStatus() == PublishStatusEnum.SCHEDULED) 
    { 
     finish(); 
    } 
    else 
    { 
     Toast.makeText(AcceptChatActivity.this, response.getStatus().toString(), Toast.LENGTH_SHORT).show(); 
    } 
    } 
}); 
} 
} 

這是聊天應用
AcceptCahatActivity文件,這是例如,從backendless.com。 這是compilin沒有錯誤。但是這個應用程序在啓動後關閉。 「不幸的是應用程序已經停止」 而這個日誌信息

E/AndroidRuntime: FATAL EXCEPTION: main 
       Process: com.backendless.chat.messaging, PID: 2770 
       java.lang.RuntimeException: Unable to start activity ComponentInfo{com.backendless.chat.messaging/com.backendless.chat.messaging.AcceptChatActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] java.lang.String.split(java.lang.String)' on a null object reference 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 
        at android.app.ActivityThread.access$800(ActivityThread.java:151) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:135) 
        at android.app.ActivityThread.main(ActivityThread.java:5254) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:372) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
       Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String[] java.lang.String.split(java.lang.String)' on a null object reference 
        at com.backendless.chat.messaging.AcceptChatActivity.onCreate(AcceptChatActivity.java:32) 
        at android.app.Activity.performCreate(Activity.java:5990) 
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)  
        at android.app.ActivityThread.access$800(ActivityThread.java:151)  
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)  
        at android.os.Handler.dispatchMessage(Handler.java:102)  
        at android.os.Looper.loop(Looper.java:135)  
        at android.app.ActivityThread.main(ActivityThread.java:5254)  
        at java.lang.reflect.Method.invoke(Native Method)  
        at java.lang.reflect.Method.invoke(Method.java:372)  
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)  
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)  
    I/Process: Sending signal. PID: 2770 SIG: 9 
    Disconnected from the target VM, address: 'localhost:8601', transport: 'socket' 

activity_accept_chat

<?xml version="1.0" encoding="utf-8"?> 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:paddingLeft="@dimen/dp16" 
      android:paddingRight="@dimen/dp16" 
      android:gravity="center"> 

<TextView 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/dp48" 
     android:text="@string/chat_invitation_default" 
     android:id="@+id/chatInvitationText" 
     android:textSize="@dimen/text_large" 
     android:layout_marginBottom="@dimen/dp4" 
     android:gravity="center"/> 

<LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/dp48" 
     android:layout_marginTop="@dimen/dp4" 
     android:gravity="center"> 

    <Button 
      android:layout_width="@dimen/dp144" 
      android:layout_height="match_parent" 
      android:text="@string/decline_button_text" 
      android:id="@+id/declineButton" 
      android:layout_marginRight="@dimen/dp4"/> 

    <Button 
      android:layout_width="@dimen/dp144" 
      android:layout_height="match_parent" 
      android:text="@string/accept_button_text" 
      android:id="@+id/acceptButton" 
      android:layout_marginLeft="@dimen/dp4"/> 
    </LinearLayout> 
    </LinearLayout> 
+2

的可能的複製取代

Intent currentIntent = getIntent(); subtopic = currentIntent.getStringExtra("subtopic");

[什麼是空指針異常,以及如何解決?(HTTP: //stackoverflow.com/questions/218384/what-is-a-nullpointerexception-and-how-d o-i-fix-it) –

+1

在日誌中,您可以看到AcceptChatActivity文件的第32行存在問題:com.backendless.chat.messaging.AcceptChatActivity.onCreate(AcceptChatActivity.java:32)。看來副主題的值爲'''null''' – barry

回答

0

你的副標題爲空和你不爲null檢查。 通過

Bundle bundle = getIntent().getExtras(); subtopic = bundle.getString("subtopic");

subtopic = currentIntent.getStringExtra("subtopic") !=null? currentIntent.getStringExtra("subtopic"): "";