单击 Android 应用程序中的按钮时导航失败,出现错误 "Unfortunately, 'myapp' has stopped"

Navigation fails, on clicking a button in Android Application, with error "Unfortunately, 'myapp' has stopped"

注意:我查看了其他解决方案并且 none 帮助了我。

我的应用程序有一个主活动,它有一个按钮可以导航到第二个屏幕,该屏幕有一个随机移动的按钮。当按钮点击次数超过计数时,它应该导航到第三个屏幕。我可以单击第二个屏幕中的按钮,直到计数刚好超过为止。但它没有导航到第三个屏幕,我收到堆栈跟踪错误。

我在下面发布我的代码:

MainActivity -> FirstActivity -> 结果

MainActivity.java:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_fullscreen);
    Button btn = (Button)findViewById(R.id.firstActivity);
    btn.setOnClickListener(new View.OnClickListener(){
        public void onClick(View arg0){
            Intent intent = new Intent(MainActivity.this, FirstActivity.class);
            startActivity(intent);
        }
    });
}

FirstActivity.java:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_first);

    //Button - Random Placement on the screen
    showPopUp = (ImageButton) findViewById(R.id.showPopUp);
    absParams = (AbsoluteLayout.LayoutParams) showPopUp.getLayoutParams();
    displaymetrics = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
    width = displaymetrics.widthPixels;
    height = displaymetrics.heightPixels;
    r = new Random();
    absParams.x = r.nextInt(width - 50);
    absParams.y = r.nextInt(height - 50);
    showPopUp.setLayoutParams(absParams);

    //OnClickListener
    showPopUp.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            if (clickCount >= Count-1) {
                Intent result = new Intent(FirstActivity.this, ShowResult.class);
                startActivity(result);
            }
            else {
                clickCount = clickCount + 1;
                r = new Random();
                absParams.x = r.nextInt(width - 50);
                absParams.y = r.nextInt(height - 50);
                showPopUp.setLayoutParams(absParams);
            }
        }
    });
}

最后是我的 Result.java:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_result);

    setResult(RESULT_OK);
    finish();
}

日志如下:

WindowManagerService.removeWindowInnerLocked:2744 com.android.server.wm.WindowManagerService.removeWindowLocked:2640 com.android.server.wm.WindowManagerService.removeWindow:2562 04-24 12:54:27.411 2934-2934/? E/AndroidRuntime﹕ FATAL EXCEPTION: main Process: com.miotasolutions.t2t, PID: 2934 android.content.ActivityNotFoundException: Unable to find explicit activity class {com.miotasolutions.t2t/com.miotasolutions.t2t.util.ShowResult}; have you declared this activity in your AndroidManifest.xml? at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1761) at android.app.Instrumentation.execStartActivity(Instrumentation.java:1485) at android.app.Activity.startActivityForResult(Activity.java:3736) at android.app.Activity.startActivityForResult(Activity.java:3697) at android.app.Activity.startActivity(Activity.java:4007) at android.app.Activity.startActivity(Activity.java:3975) at com.miotasolutions.t2t.util.FirstActivity.onClick(FirstActivity.java:51) at android.view.View.performClick(View.java:4756) at android.view.View$PerformClick.run(View.java:19749) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5221) 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:899) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 04-24 12:54:32.037 1261-1328/system_process E/InputDispatcher﹕ channel '3a1187fd com.miotasolutions.t2t/com.miotasolutions.t2t.FullscreenActivity (server)' ~ Channel is unrecoverably broken and will be disposed!

下面是我的 AndroidManifest.xml 文件:

<activity
    android:name=".FullscreenActivity"
    android:configChanges="orientation|keyboardHidden|screenSize"
    android:label="@string/app_name"
    android:theme="@style/FullscreenTheme" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity
    android:name=".util.FirstActivity"
    android:label="@string/title_activity_first" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
<activity
    android:name=".util.ShowResult"
    android:label="@string/title_activity_result" >
</activity>

您是否在清单中声明了您的 activity?因为它给出 activity not found.

将 activity 添加到清单文件使用 <activity android:name=".YourActivity" />

查看结果 activity 的代码,如果您在 onCreate 方法上调用 finish(),activity 将在创建后立即关闭,因此不会发生任何可见的事情。

尝试注释掉 finish(),或在此处放置一个断点以查看其是否有效。