嗨我试图通过使用Web服务axis2显示数据从MySQL到Android列表视图。 当我运行我的应用程序获得以下豁免。 这里是logcat的细节RuntimeException:无法启动活动ComponentInfo:java.lang.NullPointerException
12-28 21:20:45.180: E/AndroidRuntime(406): FATAL EXCEPTION: main
12-28 21:20:45.180: E/AndroidRuntime(406): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kbj/com.kbj.Invitation}: java.lang.NullPointerException
12-28 21:20:45.180: E/AndroidRuntime(406): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663)
12-28 21:20:45.180: E/AndroidRuntime(406): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
12-28 21:20:45.180: E/AndroidRuntime(406): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
12-28 21:20:45.180: E/AndroidRuntime(406): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
12-28 21:20:45.180: E/AndroidRuntime(406): at android.os.Handler.dispatchMessage(Handler.java:99)
12-28 21:20:45.180: E/AndroidRuntime(406): at android.os.Looper.loop(Looper.java:123)
12-28 21:20:45.180: E/AndroidRuntime(406): at android.app.ActivityThread.main(ActivityThread.java:4627)
12-28 21:20:45.180: E/AndroidRuntime(406): at java.lang.reflect.Method.invokeNative(Native Method)
12-28 21:20:45.180: E/AndroidRuntime(406): at java.lang.reflect.Method.invoke(Method.java:521)
12-28 21:20:45.180: E/AndroidRuntime(406): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
12-28 21:20:45.180: E/AndroidRuntime(406): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
12-28 21:20:45.180: E/AndroidRuntime(406): at dalvik.system.NativeStart.main(Native Method)
12-28 21:20:45.180: E/AndroidRuntime(406): Caused by: java.lang.NullPointerException
12-28 21:20:45.180: E/AndroidRuntime(406): at com.kbj.Invitation.onCreate(Invitation.java:49)
12-28 21:20:45.180: E/AndroidRuntime(406): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
12-28 21:20:45.180: E/AndroidRuntime(406): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627)
12-28 21:20:45.180: E/AndroidRuntime(406): ... 11 more
12-28 21:20:50.690: I/Process(406): Sending signal. PID: 406 SIG: 9
这里是我的功能在Web服务类
1 retrieveData
public ArrayList<InvitePlayerDetails> retrievePlayer(String userName){
Connection conn=null;
PreparedStatement stmt=null;
ResultSet result = null;
String retrievedUserName = "";
//Boolean b = false;
// String retrievedPassword = "";
ArrayList<InvitePlayerDetails> playersList = new ArrayList<InvitePlayerDetails>();
try{
conn = Util.getConnection();
stmt = conn.prepareStatement("SELECT kbj_username FROM kbj_registration");
result = stmt.executeQuery();
System.out.println(result);
while(result.next()){
retrievedUserName = result.getString("kbj_username");
System.out.println(retrievedUserName);
InvitePlayerDetails p1 = new InvitePlayerDetails(retrievedUserName, false);
// ArrayList<InvitePlayerDetails> playersList = new ArrayList<InvitePlayerDetails>(retrievedUserName, b);
playersList.add(p1);
System.out.println("PlayerListAdded" + playersList);
}
}
catch(SQLException e)
{
e.printStackTrace();
}
finally
{
Util.CloseDbResources(result, stmt, conn);
}
return playersList;
}
}
这里是我的android活动功能..
公共课邀请延伸活动 {
private final String NAMESPACE = "http://ws.kbj.com";
private final String URL = "http://10.0.2.2:8085/WS_KBJ/services/Kbj_WebService?wsdl";
private final String SOAP_ACTION = "http://ws.kbj.com/retrievePlayer";
private final String METHOD_NAME = "retrievePlayer";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.invitation);
final TextView userName = (TextView) findViewById(R.id.CurPlayername);
userName.setText(getIntent().getExtras().getString("UserName"));
final Button fbBtn = (Button) findViewById(R.id.fbButton);
final Button inviteBtn = (Button) findViewById(R.id.inviteBtn);
ListView listView = (ListView) findViewById(R.id.invitePlayerList);
ArrayList<InvitePlayerDetails> playersList = new ArrayList<InvitePlayerDetails>();
playersList = retriveData();
InvitePlayersBaseAdapter adapter = new InvitePlayersBaseAdapter(this, playersList);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View v, int position,
long id) {
}
});
final Intent openFbOrTwLoginPage = new Intent(this, FbOrTwLogin.class);
final Intent openNotificationPage = new Intent(this, Notification.class);
fbBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// TODO Auto-generated method stub
startActivity(openFbOrTwLoginPage);
}
});
twBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
// TODO Auto-generated method stub
startActivity(openFbOrTwLoginPage);
}
});
inviteBtn.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
startActivity(openNotificationPage);
}
}
public ArrayList<InvitePlayerDetails> retriveData(){
ArrayList<InvitePlayerDetails> playersList = new ArrayList<InvitePlayerDetails>();
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
PropertyInfo unameProp =new PropertyInfo();
unameProp.setName("userName");//Define the variable name in the web service method
unameProp.setValue(title);//set value for userName variable
unameProp.setType(String.class);//Define the type of the variable
request.addProperty(unameProp);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try{
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive response = (SoapPrimitive)envelope.getResponse();
System.out.println("SoapPriitive:"+response);
//status1 = Boolean.parseBoolean(response.toString());
}
catch(Exception e){
}
return playersList;
}
}
,我已创建了一个POJO类,这是
public class InvitePlayerDetails {
private String invitedplayerName;
private boolean ckBox;
public InvitePlayerDetails(String invitedplayerName,boolean cb1) {
this.invitedplayerName = invitedplayerName;
this.ckBox = cb1;
}
public String getInvitedplayerName() {
return invitedplayerName;
}
public void setInvitedplayerName(String invitedplayerName) {
this.invitedplayerName = invitedplayerName;
}
public boolean getCkBox() {
return ckBox;
}
public void setCkBox(boolean b) {
this.ckBox = b;
}
}
请帮我这个.. 告诉我哪里是错误的,我的代码.. 如果有人在这里使用axis2在列表视图中显示来自mysql的数据的代码.. 对不起,我的英语.. KS提前..
'由com.kbj.Invitation.onCreate(Invitation.java:49)引发java.lang.NullPointerException'邀请中的第49行是什么? – Sam
嗨先生..邀请是android的android类主..当我点击登录按钮控制去邀请活动..这是我的登录类代码\t btnLogin.setOnClickListener(新视图。OnClickListener(){ \t \t \t公共无效的onClick(查看为arg0){ \t \t \t \t // TODO自动生成方法存根 \t \t \t \t布尔状态=则loginAction(); \t \t \t \t如果(状态== TRUE){ \t \t \t \t \t \t \t \t \t \t intent.putExtra( “用户名”,USER_NAME); \t \t \t \t \t //intent.putExtra("Content“,listDescriptionString); \t \t \t \t \t startActivity(openInvitationPage); \t \t \t \t}否则{ \t \t \t \t \t result.setText( “登录失败!!”); \t \t \t \t} \t \t \t \t \t \t \t} \t \t \t \t}); –
请点击“[编辑]”将您的代码添加到您的问题中,并指出哪一行是49.但是您忘记初始化'btnLogin','intent'或'result'。 – Sam