将数据从Android应用发布到网站中的问题

用户名

嗨,我已经开发了一个应用程序,可以将数据从android发布到网站。

我遇到了android.os.NetworkOnMainThreadException问题,然后使用AsyncTask克服了此问题,如上一个线程中的建议(如何将数据从Android应用发布到网站

现在,当我运行应用程序时,我收到消息,不幸的是,应用程序已停止,然后关闭了应用程序。现在的问题在哪里?

package com.latlongapp;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import android.app.Activity;

public class MainActivity extends Activity {

    Button sendButton;

    EditText msgTextField;

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

         // make message text field object
        msgTextField = (EditText) findViewById(R.id.msgTextField);
        // make send button object
        sendButton = (Button) findViewById(R.id.sendButton);
    }

    class SendTask extends AsyncTask<String, Void, String> {
        @Override
            protected String doInBackground(String... params) {
                  // get the message from the message text box
                String msg = msgTextField.getText().toString();  

                // make sure the fields are not empty
                if (msg.length()>0)
                {
                    HttpClient httpclient = new DefaultHttpClient();
                    HttpPost httppost = new HttpPost("http://http://tayyab001.base.pk/kami.php");
                 try {
                   List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
                   nameValuePairs.add(new BasicNameValuePair("id", "12345"));
                   nameValuePairs.add(new BasicNameValuePair("message", msg));
                   httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                   httpclient.execute(httppost);
                   msgTextField.setText(""); // clear text box
                 } catch (ClientProtocolException e) {
                     // TODO Auto-generated catch block
                 } catch (IOException e) {
                     // TODO Auto-generated catch block
                 }

                }
                else
                {
                    // display message if text fields are empty
                    Toast.makeText(getBaseContext(),"All field are required",Toast.LENGTH_SHORT).show();
                }
             return null;
        }

     public void send(View v)
        {
         new SendTask().execute();
        }

}}

XML格式

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
    android:text="Message"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    /> 

<EditText
    android:id="@+id/msgTextField"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    />
<Button
    android:text="Send"
    android:id="@+id/sendButton"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:onClick="send"
    /> 

显现

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


        <uses-permission android:name="android.permission.INTERNET" /> 



    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.latlongapp.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>
    </application>

</manifest>

使用的PHP SCript是

<?php
// get the "message" variable from the post request
// this is the data coming from the Android app
$message=$_POST["message"]; 
// specify the file where we will save the contents of the variable message
$filename="androidmessages.html";
// write (append) the data to the file
file_put_contents($filename,$message."<br />",FILE_APPEND);
// load the contents of the file to a variable
$androidmessages=file_get_contents($filename);
// display the contents of the variable (which has the contents of the file)
echo $androidmessages;
?>

LOGCAT

07-19 00:37:11.148: W/dalvikvm(23394): threadid=1: thread exiting with uncaught exception (group=0x410ac9a8)
07-19 00:37:11.168: E/AndroidRuntime(23394): FATAL EXCEPTION: main
07-19 00:37:11.168: E/AndroidRuntime(23394): java.lang.IllegalStateException: Could not find a method send(View) in the activity class com.latlongapp.MainActivity for onClick handler on view class android.widget.Button with id 'sendButton'
07-19 00:37:11.168: E/AndroidRuntime(23394):    at android.view.View$1.onClick(View.java:3594)
07-19 00:37:11.168: E/AndroidRuntime(23394):    at android.view.View.performClick(View.java:4212)
07-19 00:37:11.168: E/AndroidRuntime(23394):    at android.view.View$PerformClick.run(View.java:17476)
07-19 00:37:11.168: E/AndroidRuntime(23394):    at android.os.Handler.handleCallback(Handler.java:800)
07-19 00:37:11.168: E/AndroidRuntime(23394):    at android.os.Handler.dispatchMessage(Handler.java:100)
07-19 00:37:11.168: E/AndroidRuntime(23394):    at android.os.Looper.loop(Looper.java:194)
07-19 00:37:11.168: E/AndroidRuntime(23394):    at android.app.ActivityThread.main(ActivityThread.java:5371)
07-19 00:37:11.168: E/AndroidRuntime(23394):    at java.lang.reflect.Method.invokeNative(Native Method)
07-19 00:37:11.168: E/AndroidRuntime(23394):    at java.lang.reflect.Method.invoke(Method.java:525)
07-19 00:37:11.168: E/AndroidRuntime(23394):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
07-19 00:37:11.168: E/AndroidRuntime(23394):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
07-19 00:37:11.168: E/AndroidRuntime(23394):    at dalvik.system.NativeStart.main(Native Method)
07-19 00:37:11.168: E/AndroidRuntime(23394): Caused by: java.lang.NoSuchMethodException: send [class android.view.View]
07-19 00:37:11.168: E/AndroidRuntime(23394):    at java.lang.Class.getConstructorOrMethod(Class.java:460)
07-19 00:37:11.168: E/AndroidRuntime(23394):    at java.lang.Class.getMethod(Class.java:915)
07-19 00:37:11.168: E/AndroidRuntime(23394):    at android.view.View$1.onClick(View.java:3587)
07-19 00:37:11.168: E/AndroidRuntime(23394):    ... 11 more
石本光明

send方法必须是MainActivity的方法。您的代码不是。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将数据从Android应用发布到PHP网站时出现问题

来自分类Dev

将数据从Android应用发布到网站中的android.os.NetworkOnMainThreadException

来自分类Dev

将数据从Arduino发布到网站

来自分类Dev

从Java将数据发布到网站

来自分类Dev

将数据从Arduino发布到网站

来自分类Dev

将数据从Android应用发布到PHP Web服务

来自分类Dev

将数据从 Android 应用程序发布到后端 PHP

来自分类Dev

android 中的错误 - 将数据从 android 发布到 php sql

来自分类Dev

如何使用Android Volley将数据发布到mysql中

来自分类Dev

使用cookie和viewState将数据发布到网站

来自分类Dev

使用cookie和viewState将数据发布到网站

来自分类Dev

如何使用curl将数据发布到该网站?

来自分类Dev

如何使用android studio将数据从android应用发布到服务器

来自分类Dev

Android 应用发布问题

来自分类Dev

如何正确地将数据从 Android 应用程序发布到 PHP?

来自分类Dev

从curl将数据发布到Firestore时出现问题

来自分类Dev

将请求发布到Android中的WebService

来自分类Dev

Flask应用程序将数据发布到错误的资源?

来自分类Dev

Flask应用程序将数据发布到错误的资源?

来自分类Dev

将数据作为Angular JS中的表单数据发布到Java REST Web服务时出现问题

来自分类Dev

OneSignal Wordpress通知获取发布数据到Android应用

来自分类Dev

蚊子将消息格式发布到android应用

来自分类Dev

如何将xml数据发布到android中的服务器

来自分类Dev

如何使用retrofit2将json数据发布到android中的服务器?

来自分类Dev

将网站发布到本地IIS 7.5

来自分类Dev

通过网站将图像发布到instagram

来自分类Dev

将Web应用发布到Azure网站上的暂存部署槽因webjob失败

来自分类Dev

我在将应用发布到应用商店时遇到问题

来自分类Dev

将表单数据发布到服务器(Android)

Related 相关文章

  1. 1

    将数据从Android应用发布到PHP网站时出现问题

  2. 2

    将数据从Android应用发布到网站中的android.os.NetworkOnMainThreadException

  3. 3

    将数据从Arduino发布到网站

  4. 4

    从Java将数据发布到网站

  5. 5

    将数据从Arduino发布到网站

  6. 6

    将数据从Android应用发布到PHP Web服务

  7. 7

    将数据从 Android 应用程序发布到后端 PHP

  8. 8

    android 中的错误 - 将数据从 android 发布到 php sql

  9. 9

    如何使用Android Volley将数据发布到mysql中

  10. 10

    使用cookie和viewState将数据发布到网站

  11. 11

    使用cookie和viewState将数据发布到网站

  12. 12

    如何使用curl将数据发布到该网站?

  13. 13

    如何使用android studio将数据从android应用发布到服务器

  14. 14

    Android 应用发布问题

  15. 15

    如何正确地将数据从 Android 应用程序发布到 PHP?

  16. 16

    从curl将数据发布到Firestore时出现问题

  17. 17

    将请求发布到Android中的WebService

  18. 18

    Flask应用程序将数据发布到错误的资源?

  19. 19

    Flask应用程序将数据发布到错误的资源?

  20. 20

    将数据作为Angular JS中的表单数据发布到Java REST Web服务时出现问题

  21. 21

    OneSignal Wordpress通知获取发布数据到Android应用

  22. 22

    蚊子将消息格式发布到android应用

  23. 23

    如何将xml数据发布到android中的服务器

  24. 24

    如何使用retrofit2将json数据发布到android中的服务器?

  25. 25

    将网站发布到本地IIS 7.5

  26. 26

    通过网站将图像发布到instagram

  27. 27

    将Web应用发布到Azure网站上的暂存部署槽因webjob失败

  28. 28

    我在将应用发布到应用商店时遇到问题

  29. 29

    将表单数据发布到服务器(Android)

热门标签

归档