应用程序退出,很难找到原因

叶Car仪

我正在制作应用程序,并将数据放入mysql。当我的同学在她的笔记本电脑上运行该项目时,这没关系。但这在我的笔记本电脑中不起作用。我正在尝试解决问题,但是该应用程序仍然停止。我不知道为什么

这是代码和日志

public class DateAndTime extends Activity {

    EditText Name, Mobile, Addrs, Fee;
    TextView Otime, Ctime;
    String pic,name, mobile, addrs, otime, ctime, fee;// 바꾸고 이미지도 추가.
    ImageView Pic;

    /**
     * ATTENTION: This was auto-generated to implement the App Indexing API.
     * See https://g.co/AppIndexing/AndroidStudio for more information.
     */
    private GoogleApiClient client;

    private TextView mText1;
    private TextView mText2;
    private Button mPickDate1;
    private Button mPickTime1;
    private Button mPickDate2;
    private Button mPickTime2;

    private int mYear1;
    private int mYear2;
    private int mMonth1;
    private int mMonth2;
    private int mDay1;
    private int mDay2;
    private int mHour1;
    private int mHour2;
    private int mMinute1;
    private int mMinute2;

    //Dialog
    static final int DATE_DIALOG_ID_1 = 0;
    static final int TIME_DIALOG_ID_1 = 1;
    static final int DATE_DIALOG_ID_2 = 2;
    static final int TIME_DIALOG_ID_2 = 3;

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

        mText1 = (TextView) findViewById(R.id.text1);
        mPickDate1 = (Button) findViewById(R.id.pickDate1);
        mPickTime1 = (Button) findViewById(R.id.pickTime1);

        mText2 = (TextView) findViewById(R.id.text2);
        mPickDate2 = (Button) findViewById(R.id.pickDate2);
        mPickTime2 = (Button) findViewById(R.id.pickTime2);

        mPickDate1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                showDialog(DATE_DIALOG_ID_1);
            }
        });

        mPickDate2.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                showDialog(DATE_DIALOG_ID_2);
            }
        });

        mPickTime1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                showDialog(TIME_DIALOG_ID_1);
            }
        });

        mPickTime2.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                showDialog(TIME_DIALOG_ID_2);
            }
        });

        final Calendar c = Calendar.getInstance();
        mYear1 = c.get(Calendar.YEAR);
        mMonth1 = c.get(Calendar.MONTH);
        mDay1 = c.get(Calendar.DAY_OF_MONTH);
        mHour1 = c.get(Calendar.HOUR_OF_DAY);
        mMinute1 = c.get(Calendar.MINUTE);

        mYear2 = c.get(Calendar.YEAR);
        mMonth2 = c.get(Calendar.MONTH);
        mDay2 = c.get(Calendar.DAY_OF_MONTH);
        mHour2 = c.get(Calendar.HOUR_OF_DAY);
        mMinute2 = c.get(Calendar.MINUTE);

        updateDisplay();

        Pic = (ImageView)findViewById(R.id.pic);
        Name = (EditText) findViewById(R.id.et_owner);
        Mobile = (EditText) findViewById(R.id.et_mob);
        Addrs = (EditText) findViewById(R.id.et_addrs);
        Otime = (TextView) findViewById(R.id.text1);
        Ctime = (TextView) findViewById(R.id.text2);
        Fee = (EditText) findViewById(R.id.et_fee);

        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See https://g.co/AppIndexing/AndroidStudio for more information.
        client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build();
    }

    public void updateDisplay() {
        mText1.setText(String.format("시작 : %d년 %d월 %d일 %d시 %d분", mYear1, mMonth1 + 1, mDay1, mHour1, mMinute1));
        mText2.setText(String.format("종료 : %d년 %d월 %d일 %d시 %d분", mYear2, mMonth2 + 1, mDay2, mHour2, mMinute2));
    }

    public DatePickerDialog.OnDateSetListener mDateSetListener1 =
            new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                    mYear1 = year;
                    mMonth1 = monthOfYear;
                    mDay1 = dayOfMonth;
                    updateDisplay();
                }
            };
    public DatePickerDialog.OnDateSetListener mDateSetListener2 =
            new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                    mYear2 = year;
                    mMonth2 = monthOfYear;
                    mDay2 = dayOfMonth;
                    updateDisplay();
                }
            };

    public TimePickerDialog.OnTimeSetListener mTimeSetListener1 =
            new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                    mHour1 = hourOfDay;
                    mMinute1 = minute;
                    updateDisplay();
                }
            };

    public TimePickerDialog.OnTimeSetListener mTimeSetListener2 =
            new TimePickerDialog.OnTimeSetListener() {
                @Override
                public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
                    mHour2 = hourOfDay;
                    mMinute2 = minute;
                    updateDisplay();
                }
            };

    @Override
    protected Dialog onCreateDialog(int id) {
        switch (id) {
            case DATE_DIALOG_ID_1:
                return new DatePickerDialog(this, mDateSetListener1, mYear1, mMonth1, mDay1);

            case TIME_DIALOG_ID_1:
                return new TimePickerDialog(this, mTimeSetListener1, mHour1, mMinute1, false);

            case DATE_DIALOG_ID_2:
                return new DatePickerDialog(this, mDateSetListener2, mYear2, mMonth2, mDay2);

            case TIME_DIALOG_ID_2:
                return new TimePickerDialog(this, mTimeSetListener2, mHour2, mMinute2, false);
        }
        return null;
    }
    public void saveInfo(View view) {
        pic = "default";
        name = Name.getText().toString();
        mobile = Mobile.getText().toString();
        addrs = Addrs.getText().toString();
        otime = Otime.getText().toString();
        ctime = Ctime.getText().toString();
        fee = Fee.getText().toString();
        DateAndTime.BackgroundTask backgroundTask = new DateAndTime.BackgroundTask();
        backgroundTask.execute(pic, name,  mobile, addrs, otime, ctime, fee);
    }

    /**
     * ATTENTION: This was auto-generated to implement the App Indexing API.
     * See https://g.co/AppIndexing/AndroidStudio for more information.
     */
    public Action getIndexApiAction() {
        Thing object = new Thing.Builder()
                .setName("ParkAddInfo Page") // TODO: Define a title for the content shown.
                // TODO: Make sure this auto-generated URL is correct.
                .setUrl(Uri.parse("http://35.160.135.119/add_park_info.php"))
                .build();
        return new Action.Builder(Action.TYPE_VIEW)
                .setObject(object)
                .setActionStatus(Action.STATUS_TYPE_COMPLETED)
                .build();
    }

    @Override
    public void onStart() {
        super.onStart();

        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See https://g.co/AppIndexing/AndroidStudio for more information.
        client.connect();
        AppIndex.AppIndexApi.start(client, getIndexApiAction());
    }

    @Override
    public void onStop() {
        super.onStop();

        // ATTENTION: This was auto-generated to implement the App Indexing API.
        // See https://g.co/AppIndexing/AndroidStudio for more information.
        AppIndex.AppIndexApi.end(client, getIndexApiAction());
        client.disconnect();
    }

    class BackgroundTask extends AsyncTask<String, Void, String> {
        String park_add_info_url;

        @Override
        protected void onPreExecute() {

            park_add_info_url = "http://35.160.135.119/add_park_info.php"; // insert the Domain name http://androidtut.comli.com//add_info.php
        }

        @Override
        protected String doInBackground(String... args)  {

            HashMap<String, String> param = new HashMap<String, String>();

            param.put("pic",args[0]);
            param.put("owner",args[1]);
            param.put("mobile",args[2]);
            param.put("addrs",args[3]);
            param.put("otime",args[4]);
            param.put("ctime",args[5]);
            param.put("fee",args[6]);
            try {
                URL url = new URL(park_add_info_url);
                HttpURLConnection httpURLConnection =(HttpURLConnection) url.openConnection();
                httpURLConnection.setRequestMethod("POST");
                httpURLConnection.setDoOutput(true);
                OutputStream outputStream = httpURLConnection.getOutputStream();
                BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream, "UTF-8"));

                StringBuilder sb =  new StringBuilder();
                for(Map.Entry item : param.entrySet())
                {
                    sb.append(item.getKey().toString());
                    sb.append("=");
                    String value = item.getValue().toString();
                    if(value.isEmpty())
                    {
                        sb.append("");
                    }else
                    {
                        sb.append(URLEncoder.encode(value,"UTF-8"));
                    }
                    sb.append("&");
                }
stringBuilder.append(URLEncoder.encode(pic,"UTF-8"));
stringBuilder.append(URLEncoder.encode(name,"UTF-8"));
stringBuilder.append(URLEncoder.encode(mobile,"UTF-8"));
 stringBuilder.append(URLEncoder.encode(addrs,"UTF-8"));
stringBuilder.append(URLEncoder.encode(otime,"UTF-8"));
stringBuilder.append(URLEncoder.encode(ctime,"UTF-8"));
stringBuilder.append(URLEncoder.encode(fee,"UTF-8"));

                String data_string = sb.toString(); =URLEncoder.encode(stringBuilder.toString(),"utf-8");
                bufferedWriter.write(data_string);
                bufferedWriter.flush();
                bufferedWriter.close();
                outputStream.close();
                InputStream inputStream = httpURLConnection.getInputStream();
                inputStream.close();
                httpURLConnection.disconnect();
                return "One row of data inserted..";


            } catch (IOException e) {//TODO:check network dialog window
                e.printStackTrace();
            }

            return null;
        }

        @Override
        protected void onProgressUpdate(Void... values) {
            super.onProgressUpdate(values);
        }

        @Override
        protected void onPostExecute(String result) {
            Toast.makeText(getApplicationContext(), result, Toast.LENGTH_LONG).show();
        }

    }

}

这是日志

    11/15 23:00:15: Launching app
        No apk changes detected since last installation, skipping installation of C:\Android\1113GMDemo1\app\build\outputs\apk\app-debug.apk
        $ adb shell am force-stop com.example.jina.a1105gmdemo
        $ adb shell am start -n "com.example.jina.a1105gmdemo/com.example.jina.a1105gmdemo.DateAndTime" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
        Connecting to com.example.jina.a1105gmdemo
        I/System.out: Sending WAIT chunk
        W/ActivityThread: Application com.example.jina.a1105gmdemo is waiting for the debugger on port 8100...
        I/dalvikvm: Debugger is active
        I/System.out: Debugger has connected
        I/System.out: waiting for debugger to settle...
        I/System.out: waiting for debugger to settle...
        Connected to the target VM, address: 'localhost:8629', transport: 'socket'
        I/System.out: waiting for debugger to settle...
        I/System.out: waiting for debugger to settle...
        I/System.out: waiting for debugger to settle...
        I/System.out: waiting for debugger to settle...
        I/System.out: waiting for debugger to settle...
        I/System.out: waiting for debugger to settle...
        I/System.out: waiting for debugger to settle...
        I/System.out: debugger has settled (1304)
        I/MultiDex: VM with version 1.6.0 does not have multidex support
        I/MultiDex: install
        I/MultiDex: MultiDexExtractor.load(/data/app/com.example.jina.a1105gmdemo-9.apk, false)
        I/MultiDex: Detected that extraction must be performed.
        I/MultiDex: Trying to delete old file /data/data/com.example.jina.a1105gmdemo/code_cache/secondary-dexes/com.example.jina.a1105gmdemo-8.apk.classes2.dex of size 2898496
        I/MultiDex: Deleted old file /data/data/com.example.jina.a1105gmdemo/code_cache/secondary-dexes/com.example.jina.a1105gmdemo-8.apk.classes2.dex
        I/MultiDex: Trying to delete old file /data/data/com.example.jina.a1105gmdemo/code_cache/secondary-dexes/com.example.jina.a1105gmdemo-8.apk.classes2.zip of size 934986
        I/MultiDex: Deleted old file /data/data/com.example.jina.a1105gmdemo/code_cache/secondary-dexes/com.example.jina.a1105gmdemo-8.apk.classes2.zip
        I/MultiDex: Extraction is needed for file /data/data/com.example.jina.a1105gmdemo/code_cache/secondary-dexes/com.example.jina.a1105gmdemo-9.apk.classes2.zip
        I/MultiDex: Extracting /data/data/com.example.jina.a1105gmdemo/code_cache/secondary-dexes/com.example.jina.a1105gmdemo-9.apk.classes-1719707400.zip
        I/MultiDex: Renaming to /data/data/com.example.jina.a1105gmdemo/code_cache/secondary-dexes/com.example.jina.a1105gmdemo-9.apk.classes2.zip
        I/MultiDex: Extraction success - length /data/data/com.example.jina.a1105gmdemo/code_cache/secondary-dexes/com.example.jina.a1105gmdemo-9.apk.classes2.zip: 934986
        I/MultiDex: load found 1 secondary dex files
        D/dalvikvm: DexOpt: --- BEGIN 'com.example.jina.a1105gmdemo-9.apk.classes2.zip' (bootstrap=0) ---
        D/dalvikvm: DexOpt: --- END 'com.example.jina.a1105gmdemo-9.apk.classes2.zip' (success) ---
        D/dalvikvm: DEX prep '/data/data/com.example.jina.a1105gmdemo/code_cache/secondary-dexes/com.example.jina.a1105gmdemo-9.apk.classes2.zip': unzip in 69ms, rewrite 772ms
        I/MultiDex: install done
        I/FirebaseInitProvider: FirebaseApp initialization unsuccessful
        I/PersonaManager: getPersonaService() name persona_policy
        I/PersonaManager: getPersonaService() name persona_policy
        D/AndroidRuntime: Shutting down VM
        W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x416d3da0)
        E/AndroidRuntime: FATAL EXCEPTION: main
        Process: com.example.jina.a1105gmdemo, PID: 16909
        java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.jina.a1105gmdemo/com.example.jina.a1105gmdemo.DateAndTime}: java.lang.IllegalStateException: ScrollView can host only one direct child
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2331)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2389)
        at android.app.ActivityThread.access$900(ActivityThread.java:169)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:136)
        at android.app.ActivityThread.main(ActivityThread.java:5479)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:515)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
        at dalvik.system.NativeStart.main(Native Method)
        Caused by: java.lang.IllegalStateException: ScrollView can host only one direct child
        at android.support.v4.widget.NestedScrollView.addView(NestedScrollView.java:387)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:770)
        at android.view.LayoutInflater.rInflate(LayoutInflater.java:769)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:498)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:398)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:354)
        at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:366)
        at android.app.Activity.setContentView(Activity.java:2031)
        at com.example.jina.a1105gmdemo.DateAndTime.onCreate(DateAndTime.java:86)
        at android.app.Activity.performCreate(Activity.java:5451)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2295)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2389) 
        at android.app.ActivityThread.access$900(ActivityThread.java:169) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:136) 
        at android.app.ActivityThread.main(ActivityThread.java:5479) 
        at java.lang.reflect.Method.invokeNative(Native Method) 
        at java.lang.reflect.Method.invoke(Method.java:515) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
        at dalvik.system.NativeStart.main(Native Method) 
Shahraiz T.

你可以去你MainActivity,向下滚动到的setContentView说,部分解决这个问题(R.layout。your_layout_name); 在按住Ctrl(Windows)或Cmd(Mac)的同时单击your_layout_name这将带您到布局文件。在这里,您应该在开始处看到一个ScrollView开头标签,在结尾处看到一个结束标签。只需将其更改为以下形式:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <TextView
            android:text="This is your first item"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

        <TextView
            android:text="This is your second item"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

        <TextView
            android:text="This is your third item"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

    </LinearLayout>

</ScrollView>

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

VBA很难找到替换

来自分类Dev

VBA很难找到替换

来自分类Dev

为什么这个根证书很难找到?

来自分类Dev

Python Selenium:很难找到密码元素

来自分类Dev

无法退出应用程序

来自分类Dev

OnBackPressed()退出应用程序

来自分类Dev

我的控制台应用程序以代码0退出的原因是什么?

来自分类Dev

我很难将Meteor应用程序部署到DigitalOcean

来自分类Dev

很难找到在正则表达式中插入“单词排除”的位置

来自分类Dev

我很难找到所有商店的平均销售额

来自分类Dev

在C ++中很难找到两个项目之间的差异

来自分类Dev

SQL 连接多对多键关系表使得很难找到不同的总和

来自分类Dev

如何找到为什么64位应用程序可以在14.04而不是12.04上运行的原因?

来自分类Dev

如何退出android NDK应用程序

来自分类Dev

Android应用程序未退出

来自分类Dev

如何退出Android应用程序?

来自分类Dev

Java RMI应用程序未退出

来自分类Dev

以编程方式退出android应用程序

来自分类Dev

QT应用程序不会退出

来自分类Dev

向上按钮退出应用程序?

来自分类Dev

lldb查找应用程序的退出点

来自分类Dev

Heroku Clojure应用程序退出挂钩

来自分类Dev

在应用程序退出之前执行功能

来自分类Dev

退出Silverlight OOB应用程序

来自分类Dev

退出时清除WPF应用程序

来自分类Dev

因Internet错误而退出应用程序

来自分类Dev

SpringBoot应用程序退出时间

来自分类Dev

JavaFx应用程序在退出时崩溃

来自分类Dev

如何退出android应用程序?