应用程序在启动新活动时停止

时间:2017-07-23 07:32:07

标签: java android xml

我一直在尝试在我的应用中启动一项新活动,虽然它确实片刻,但在打开新屏幕后,应用程序停止了。我已经在清单中添加了新的活动。 这是我用来调用新活动的方法,当它只在clickListener中有toast时,它可以很好地工作:

public void Bs()
    {
        View.OnClickListener listSet = new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                Toast.makeText(getApplicationContext(), "settings", Toast.LENGTH_LONG).show();
                Intent intent= new Intent(MainActivity.this, Set.class);
                startActivity(intent);
            }
        };
        b= (ImageButton) findViewById(R.id.imageButton7);
        b.setOnClickListener(listSet);
    }

这是被调用的类:

public class Set extends Activity 
{
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.settings);
    }
}

这是布局类设置,只有textview(我已经尝试了几个布局,其中没有一个工作,所以我想这不是问题,但我还是添加它,以防它有帮助) :

?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginTop="0dp"
        android:text="@string/toolbar"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>

这些是我在logcat中遇到的错误:

 --------- beginning of crash
07-23 07:10:04.022 3267-2868/? A/google-breakpad: -----BEGIN BREAKPAD MICRODUMP-----
07-23 07:10:04.022 3267-2868/? A/google-breakpad: V WebView:51.0.2704.90

(...)

    07-23 07:10:11.548 2202-2891/? E/SystemUpdateService: Failed to call RecoverySystem.cancelScheduledUpdate
                                                          java.lang.reflect.InvocationTargetException
                                                              at java.lang.reflect.Method.invoke(Native Method)
                                                              at xae.c(:com.google.android.gms:134)
                                                              at afuw.d(:com.google.android.gms:195)
                                                              at afuw.p(:com.google.android.gms:2178)
                                                              at afuw.a(:com.google.android.gms:448)
                                                              at afuw.doInBackground(:com.google.android.gms:50475)
                                                              at android.os.AsyncTask$2.call(AsyncTask.java:304)
                                                              at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                              at java.lang.Thread.run(Thread.java:761)
                                                           Caused by: java.io.IOException: cancel scheduled update failed
                                                              at android.os.RecoverySystem.cancelScheduledUpdate(RecoverySystem.java:555)
                                                              at java.lang.reflect.Method.invoke(Native Method) 
                                                              at xae.c(:com.google.android.gms:134) 
                                                              at afuw.d(:com.google.android.gms:195) 
                                                              at afuw.p(:com.google.android.gms:2178) 
                                                              at afuw.a(:com.google.android.gms:448) 
                                                              at afuw.doInBackground(:com.google.android.gms:50475) 
                                                              at android.os.AsyncTask$2.call(AsyncTask.java:304) 
                                                              at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
                                                              at java.lang.Thread.run(Thread.java:761) 
    07-23 07:10:12.453 2202-3333/? W/art: Verification of com.google.android.gms.common.data.DataHolder[] com.google.android.gms.games.broker.AppContentAgent.loadCardStream$3489344c(com.google.android.gms.games.broker.GamesClientContext, com.google.android.gms.games.broker.AppContentContext, long) took 841.459ms
    07-23 07:10:12.592 2202-2891/? E/SystemUpdateTask: exception trying to cancel scheduled update
                                                       java.io.IOException: Failed to invoke RecoverySystem.cancelScheduledUpdate
                                                           at xae.c(:com.google.android.gms:140)
                                                           at afuw.d(:com.google.android.gms:195)
                                                           at afuw.p(:com.google.android.gms:2178)
                                                           at afuw.a(:com.google.android.gms:448)
                                                           at afuw.doInBackground(:com.google.android.gms:50475)
                                                           at android.os.AsyncTask$2.call(AsyncTask.java:304)
                                                           at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                           at java.lang.Thread.run(Thread.java:761)


                                                       [ 07-23 07:10:12.629  2443: 2488 D/         ]
                                                       HostConnection::get() New Host Connection established 0x895a1900, tid 2488
(...)
07-23 07:10:44.198 1534-2908/? E/RecoverySystemService: Timed out connecting to uncrypt socket
07-23 07:10:44.198 1534-2908/? E/RecoverySystemService: Failed to connect to uncrypt socket
07-23 07:10:44.201 2202-3376/? E/SystemUpdateService: Failed to call RecoverySystem.cancelScheduledUpdate
                                                      java.lang.reflect.InvocationTargetException
                                                          at java.lang.reflect.Method.invoke(Native Method)
                                                          at xae.c(:com.google.android.gms:134)
                                                          at afuw.d(:com.google.android.gms:195)
                                                          at afuw.p(:com.google.android.gms:2178)
                                                          at afuw.a(:com.google.android.gms:448)
                                                          at afuw.doInBackground(:com.google.android.gms:50475)
                                                          at android.os.AsyncTask$2.call(AsyncTask.java:304)
                                                          at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                          at java.lang.Thread.run(Thread.java:761)
                                                       Caused by: java.io.IOException: cancel scheduled update failed
                                                          at android.os.RecoverySystem.cancelScheduledUpdate(RecoverySystem.java:555)
                                                          at java.lang.reflect.Method.invoke(Native Method) 
                                                          at xae.c(:com.google.android.gms:134) 
                                                          at afuw.d(:com.google.android.gms:195) 
                                                          at afuw.p(:com.google.android.gms:2178) 
                                                          at afuw.a(:com.google.android.gms:448) 
                                                          at afuw.doInBackground(:com.google.android.gms:50475) 
                                                          at android.os.AsyncTask$2.call(AsyncTask.java:304) 
                                                          at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
                                                          at java.lang.Thread.run(Thread.java:761) 
07-23 07:10:44.201 2202-3376/? E/SystemUpdateTask: exception trying to cancel scheduled update
                                                   java.io.IOException: Failed to invoke RecoverySystem.cancelScheduledUpdate
                                                       at xae.c(:com.google.android.gms:140)
                                                       at afuw.d(:com.google.android.gms:195)
                                                       at afuw.p(:com.google.android.gms:2178)
                                                       at afuw.a(:com.google.android.gms:448)
                                                       at afuw.doInBackground(:com.google.android.gms:50475)
                                                       at android.os.AsyncTask$2.call(AsyncTask.java:304)
                                                       at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                       at java.lang.Thread.run(Thread.java:761)

调用新活动时我做错了吗?或者是我称之为一个不合适的班级?

修改 这是我的表现:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.xx.yy">
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <application
        android:debuggable="false"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name="com.xx.yy.MainActivity"
                android:configChanges= "orientation|screenSize"
                android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
        </activity>
        <activity
            android:name="com.xx.yy.Set"
            android:screenOrientation="portrait">
        </activity>
    </application>
</manifest>

2 个答案:

答案 0 :(得分:0)

我一直在做更多的尝试,我认为问题是我在第一个活动上有fullScreen但在第二个活动上没有。因此,将这两行添加到Set类可以解决问题:

public class Set extends Activity
{
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.settings);
    }
}

答案 1 :(得分:-1)

您可以在此处分享您的MANIFEST文件

我尝试了你编写的类似代码,检查下面的工作代码。

<强> MainActivity.java

package com.service.rajeshm.activitytest;

import android.content.Intent;
import android.media.Image;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        View.OnClickListener listSet = new View.OnClickListener()
        {
            @Override
            public void onClick(View view)
            {
                Toast.makeText(getApplicationContext(), "settings", Toast.LENGTH_LONG).show();
                Intent intent= new Intent(MainActivity.this, Set.class);
                startActivity(intent);
            }
        };
        ImageButton b= (ImageButton) findViewById(R.id.imageButton1);
        b.setOnClickListener(listSet);
    }
}

<强> activity_main.xml中

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.service.rajeshm.activitytest.MainActivity">

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:srcCompat="@mipmap/ic_launcher"
        android:layout_marginLeft="15dp"
        android:layout_marginStart="15dp"
        android:layout_marginTop="17dp"
        android:id="@+id/imageButton1"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

</RelativeLayout>

<强> Set.java

package com.service.rajeshm.activitytest;

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class Set extends AppCompatActivity {

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

<强> activity_set.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_set"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.service.rajeshm.activitytest.Set">

    <ImageView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:srcCompat="@android:drawable/btn_star_big_on"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginLeft="64dp"
        android:layout_marginStart="64dp"
        android:layout_marginTop="48dp"
        android:id="@+id/imageView"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:layout_marginRight="32dp"
        android:layout_marginEnd="32dp" />
</RelativeLayout>

<强>的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.service.rajeshm.activitytest">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Set"></activity>
    </application>

</manifest>