【问题标题】:Cant go from one activity to another不能从一项活动转到另一项活动
【发布时间】:2017-08-21 20:02:35
【问题描述】:

我是 android 开发的新手,我设计了一个非常简单的应用程序,当我按下一个按钮时,它会将我带到另一个活动,但每当我按下按钮时,我的应用程序就会崩溃。我不知道有什么问题我知道我的代码是正确的,因为它在互联网上无处不在。请帮助 提前致谢。这是我的代码

ActivityMain.java

    package com.dreamfighter.myapplication;

import android.content.Intent;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.view.View;
import android.widget.Button;

public class MainActivity extends AppCompatActivity 
{
Button b1;


    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        b1 = (Button) findViewById(R.id.button);
    }

    public void clickme(View view)
    {
        Intent intent = new Intent(MainActivity.this,second.class);
        startActivity(intent);
    }

}

Activity_Main.xml

<

?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    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.dreamfighter.myapplication.MainActivity"
    android:background="#8e2424"
    >

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="New Button"
        android:id="@+id/button"
        android:layout_below="@+id/textView"
        android:layout_toRightOf="@+id/textView"
        android:layout_toEndOf="@+id/textView"
        android:layout_marginTop="134dp"
    android:onClick="clickme"
        />
</RelativeLayout>

second.java

    package com.dreamfighter.myapplication;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class second extends AppCompatActivity{
Button b2;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        b2 = (Button) findViewById(R.id.button2);
    }
    public void clck(View view){
        Intent intent = new Intent(second.this,MainActivity.class);

        startActivity(intent);
    }
}

asd.xml

<RelativeLayout

xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#26b891" >

<Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Click me Now"
    android:id="@+id/button2"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="332dp"
    android:onClick="clck" />

我收到了这个错误

08-21 14:05:12.814 19829-19829/com.dreamfighter.myapplication I/Process:发送信号。 PID:19829 SIG:9 08-21 14:05:57.944 20224-20224/com.dreamfighter.myapplication I/art:后期启用 -Xcheck:jni 08-21 14:05:57.998 20224-20224/com.dreamfighter.myapplication W/System: ClassLoader 引用的未知路径: /data/app/com.dreamfighter.myapplication-1/lib/arm64 08-21 14:05:58.149 20224-20224/com.dreamfighter.myapplication W/系统: ClassLoader 引用了未知路径: /data/app/com.dreamfighter.myapplication-1/lib/arm64 08-21 14:05:58.157 20224-20224/com.dreamfighter.myapplication D/ActivityThread:BIND_APPLICATION 处理:0 / AppBindData{appInfo=ApplicationInfo{2b96c39 com.dreamfighter.myapplication}} 08-21 14:05:58.157 20224-20224/com.dreamfighter.myapplication V/ActivityThread:处理 启动 ActivityRecord{502a27e token=android.os.BinderProxy@b15c3df {com.dreamfighter.myapplication/com.dreamfighter.myapplication.MainActivity}} 开始未恢复=假 08-21 14:05:58.212 20224-20233/com.dreamfighter.myapplication I/系统:FinalizerDaemon: 完成对象 = 1 08-21 14:05:58.266 20224-20224/com.dreamfighter.myapplication V/ActivityThread: ActivityRecord{502a27e 令牌=android.os.BinderProxy@b15c3df {com.dreamfighter.myapplication/com.dreamfighter.myapplication.MainActivity}}: app=android.app.Application@8bb92f5, appName=com.dreamfighter.myapplication, pkg=com.dreamfighter.myapplication, comp={com.dreamfighter.myapplication/com.dreamfighter.myapplication.MainActivity}, dir=/data/app/com.dreamfighter.myapplication-1/base.apk 08-21 14:05:58.346 20224-20224/com.dreamfighter.myapplication W/艺术:之前 Android 4.1,方法 android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) 会错误地覆盖 package-private 方法 android.graphics.drawable.Drawable 08-21 14:05:58.353 20224-20224/com.dreamfighter.myapplication D/资源: resEntryNameFinal = com_dreamfighter_myapplication_abc_vector_test 08-21 14:05:58.370 20224-20224/com.dreamfighter.myapplication E/MultiWindowProxy:getServiceInstance 失败! 08-21 14:05:58.370 20224-20224/com.dreamfighter.myapplication D/PhoneWindow: XUI_SystemUI isAutoChangeXUI:真,mStatusBarColor:-13615201,mNavigationBarColor: -16777216 08-21 14:05:58.370 20224-20224/com.dreamfighter.myapplication D/PhoneWindow: XUI_SystemUI ,Color.brightness(mStatusBarColor):false,Color.brightness(mNavigationBarColor) :false 08-21 14:05:58.370 20224-20224/com.dreamfighter.myapplication D/PhoneWindow: XUI_SystemUI isDarkStatusBar:false, isDarkNavBar: 错误,查看.SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR:16 08-21 14:05:58.420 20224-20224/com.dreamfighter.myapplication D/资源: resEntryNameFinal = com_dreamfighter_myapplication_colorPrimary 08-21 14:05:58.421 20224-20224/com.dreamfighter.myapplication D/资源: resEntryNameFinal = com_dreamfighter_myapplication_colorPrimary 08-21 14:05:58.505 20224-20224/com.dreamfighter.myapplication D/资源: 添加 /mnt/sdcard/BuildRes.apk cookie = 4 08-21 14:05:58.515 20224-20224/com.dreamfighter.myapplication V/ActivityThread: 执行 ActivityRecord{502a27e 的恢复 令牌=android.os.BinderProxy@b15c3df {com.dreamfighter.myapplication/com.dreamfighter.myapplication.MainActivity}} 08-21 14:05:58.533 20224-20224/com.dreamfighter.myapplication D/ActivityThread:ACT-AM_ON_RESUME_CALLED ActivityRecord{502a27e 令牌=android.os.BinderProxy@b15c3df {com.dreamfighter.myapplication/com.dreamfighter.myapplication.MainActivity}} 08-21 14:05:58.534 20224-20224/com.dreamfighter.myapplication V/ActivityThread:恢复 ActivityRecord{502a27e 令牌=android.os.BinderProxy@b15c3df {com.dreamfighter.myapplication/com.dreamfighter.myapplication.MainActivity}} 开始活动:假,hideForNow:假,完成:假 08-21 14:05:58.534 20224-20224/com.dreamfighter.myapplication V/PhoneWindow: DecorView setVisiblity: visibility = 4 ,Parent =null, this =com.android.internal.policy.PhoneWindow$DecorView{52ffb18 I.E...... R.....ID 0,0-0,0} 08-21 14:05:58.539 20224-20224/com.dreamfighter.myapplication D/WindowClient: 添加到 mViews:com.android.internal.policy.PhoneWindow$DecorView{52ffb18 I.E...... R......ID 0,0-0,0},这 = android.view.WindowManagerGlobal@f2d548e 08-21 14:05:58.540 20224-20224/com.dreamfighter.myapplication D/OpenGLRenderer: Dumper 初始化 4 个线程 08-21 14:05:58.540 20224-20224/com.dreamfighter.myapplication D/OpenGLRenderer: 在跑。 08-21 14:05:58.542 20224-20247/com.dreamfighter.myapplication D/OpenGLRenderer:使用 EGL_SWAP_BEHAVIOR_PRESERVED:假 08-21 14:05:58.542 20224-20247/com.dreamfighter.myapplication D/OpenGLRenderer: 画布上下文() 0x7f6b015000 08-21 14:05:58.553 20224-20224/com.dreamfighter.myapplication I/[MALI][Gralloc]: [+]r_hnd(0x7f63aab8c0),客户端(31),share_fd(30) 08-21 14:05:58.553 20224-20224/com.dreamfighter.myapplication D/GraphicBuffer:注册, 句柄(0x7f63aab8c0)(w:1216 h:2048 s:1216 f:0x1 u:0x000100)08-21 14:05:58.555 20224-20224/com.dreamfighter.myapplication D/ViewRootImpl:启用硬件加速,this = ViewRoot{9e474af com.dreamfighter.myapplication/com.dreamfighter.myapplication.MainActivity,ident = 0} 08-21 14:05:58.560 20224-20224/com.dreamfighter.myapplication V/ActivityThread: 恢复 ActivityRecord{502a27e 令牌=android.os.BinderProxy@b15c3df {com.dreamfighter.myapplication/com.dreamfighter.myapplication.MainActivity}} isForward=true 08-21 14:05:58.560 20224-20224/com.dreamfighter.myapplication V/PhoneWindow: DecorView setVisiblity: 可见性 = 0 ,Parent =ViewRoot{9e474af com.dreamfighter.myapplication/com.dreamfighter.myapplication.MainActivity,ident = 0},这 =com.android.internal.policy.PhoneWindow$DecorView{52ffb18 V.E...... R.....ID 0,0-0,0} 08-21 14:05:58.560 20224-20224/com.dreamfighter.myapplication V/ActivityThread: 为 ActivityRecord{502a27e 安排空闲处理程序 令牌=android.os.BinderProxy@b15c3df {com.dreamfighter.myapplication/com.dreamfighter.myapplication.MainActivity}} 08-21 14:05:58.560 20224-20224/com.dreamfighter.myapplication D/ActivityThread:处理的 ACT-LAUNCH_ACTIVITY :0 / ActivityRecord{502a27e 令牌=android.os.BinderProxy@b15c3df {com.dreamfighter.myapplication/com.dreamfighter.myapplication.MainActivity}} 08-21 14:05:58.583 20224-20247/com.dreamfighter.myapplication D/OpenGLRenderer: CanvasContext() 0x7f6b015000 初始化 窗口=0x7f786df010, 标题=com.dreamfighter.myapplication/com.dreamfighter.myapplication.MainActivity 08-21 14:05:58.583 20224-20224/com.dreamfighter.myapplication D/Surface:Surface::allocateBuffers(this=0x7f786df000) 08-21 14:05:58.587 20224-20247/com.dreamfighter.myapplication I/OpenGLRenderer:初始化 EGL,版本 1.4 08-21 14:05:58.590 20224-20247/com.dreamfighter.myapplication D/OpenGLRenderer:已创建 EGL 上下文 (0x7f7257d200) 08-21 14:05:58.592 20224-20247/com.dreamfighter.myapplication I/OpenGLRenderer:获取 启用程序二进制服务属性(一)08-21 14:05:58.592 20224-20247/com.dreamfighter.myapplication I/OpenGLRenderer: 初始化程序图集... 08-21 14:05:58.592 20224-20247/com.dreamfighter.myapplication D/ProgramBinary/Service: BpProgramBinaryService.getFileDescriptor 08-21 14:05:58.593 20224-20247/com.dreamfighter.myapplication D/ProgramBinary/Service: BpProgramBinaryService.getProgramMapLen 08-21 14:05:58.593 20224-20247/com.dreamfighter.myapplication D/ProgramBinary/Service: BpProgramBinaryService.getProgramMapArray 08-21 14:05:58.593 20224-20247/com.dreamfighter.myapplication D/ProgramBinary/Service: BpProgramBinaryService.getProgramBinaryLen 08-21 14:05:58.593 20224-20247/com.dreamfighter.myapplication I/OpenGLRenderer:程序 二进制细节:二进制长度为 169616,程序映射长度为 152。 08-21 14:05:58.594 20224-20247/com.dreamfighter.myapplication I/OpenGLRenderer:成功映射程序二进制文件。文件描述符 是 38,路径是 /dev/ashmemc。 08-21 14:05:58.594 20224-20247/com.dreamfighter.myapplication I/OpenGLRenderer:不需要 要不再使用文件描述符,请关闭 fd(38)。 08-21 14:05:58.594 20224-20247/com.dreamfighter.myapplication D/OpenGLRenderer: 从 0x7f7c18bbb8 初始化程序缓存,大小 = 4 08-21 14:05:58.596 20224-20247/com.dreamfighter.myapplication D/OpenGLRenderer:--init(key = 0x0000000000000000)08-21 14:05:58.598 20224-20247/com.dreamfighter.myapplication D/OpenGLRenderer:--init(key = 0x0000000800000003)08-21 14:05:58.599 20224-20247/com.dreamfighter.myapplication D/OpenGLRenderer:--init(key = 0x0000001000500040)08-21 14:05:58.600 20224-20247/com.dreamfighter.myapplication D/OpenGLRenderer:--init(key = 0x0000003800000000)08-21 14:05:58.602 20224-20247/com.dreamfighter.myapplication D/Surface: Surface::connect(this=0x7f786df000,api=1) 08-21 14:05:58.603 20224-20247/com.dreamfighter.myapplication W/libEGL: [ANDROID_RECORDABLE] 格式:1 08-21 14:05:58.604 20224-20247/com.dreamfighter.myapplication D/mali_winsys: new_window_surface 返回 0x3000 08-21 14:05:58.647 20224-20247/com.dreamfighter.myapplication D/OpenGLRenderer: CacheTexture 2 上传:x,y,width height = 0,0,145,180 08-21 14:05:58.651 20224-20247/com.dreamfighter.myapplication I/[MALI][Gralloc]:[+]r_hnd(0x7f61e963c0),客户端(31),share_fd(39) 08-21 14:05:58.651 20224-20247/com.dreamfighter.myapplication D/GraphicBuffer:寄存器,句柄(0x7f61e963c0)(w:720 h:1280 s:720 f:0x1 u:0x000b00) 08-21 14:05:58.653 20224-20247/com.dreamfighter.myapplication D/OpenGLRenderer: ProgramCache 保存到磁盘,大小 = 4 08-21 14:05:58.657 20224-20224/com.dreamfighter.myapplication V/InputMethodManager: onWindowFocus: null softInputMode=288 first=true flags=#81810100 08-21 14:05:58.657 20224-20224/com.dreamfighter.myapplication V/InputMethodManager:开始输入: com.android.internal.policy.PhoneWindow$DecorView{52ffb18 V.E...... R.....ID 0,0-720,1280} ic=null tba=android.view.inputmethod.EditorInfo@b24ea43 controlFlags=#104 08-21 14:05:58.671 20224-20247/com.dreamfighter.myapplication I/[MALI][Gralloc]:[+]r_hnd(0x7f61e96460),客户端(31),share_fd(41) 08-21 14:05:58.671 20224-20247/com.dreamfighter.myapplication D/GraphicBuffer:寄存器,句柄(0x7f61e96460)(w:720 h:1280 s:720 f:0x1 u:0x000b00) 08-21 14:06:00.489 20224-20247/com.dreamfighter.myapplication I/[MALI][Gralloc]: [+]r_hnd(0x7f61e96500)、客户端(31)、share_fd(42) 08-21 14:06:00.489 20224-20247/com.dreamfighter.myapplication D/GraphicBuffer:注册, 句柄(0x7f61e96500)(w:720 h:1280 s:720 f:0x1 u:0x000b00)08-21 14:06:00.505 20224-20247/com.dreamfighter.myapplication I/[MALI][Gralloc]:[+]r_hnd(0x7f61e96640),客户端(31),share_fd(43) 08-21 14:06:00.505 20224-20247/com.dreamfighter.myapplication D/GraphicBuffer:寄存器,句柄(0x7f61e96640)(w:720 h:1280 s:720 f:0x1 u:0x000b00) 08-21 14:06:00.519 20224-20224/com.dreamfighter.myapplication V/SettingsInterface: 无效 [系统]:当前 306 != 缓存 0 08-21 14:06:00.521 20224-20224/com.dreamfighter.myapplication D/ActivityThread: 持有人:android.app.IActivityManager$ContentProviderHolder@f38af4a, holder.provider:android.content.ContentProviderProxy@dc75ebb 08-21 14:06:00.525 20224-20224/com.dreamfighter.myapplication D/AndroidRuntime: 关闭 VM 08-21 14:06:00.526 20224-20224/com.dreamfighter.myapplication E/Android运行时:致命 例外:主要 进程:com.dreamfighter.myapplication,PID:20224 java.lang.IllegalStateException:无法执行方法 安卓:点击 在 android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:293) 在 android.view.View.performClick(View.java:5274) 在 android.view.View$PerformClick.run(View.java:21543) 在 android.os.Handler.handleCallback(Handler.java:815) 在 android.os.Handler.dispatchMessage(Handler.java:104) 在 android.os.Looper.loop(Looper.java:207) 在 android.app.ActivityThread.main(ActivityThread.java:5728) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679) 引起:java.lang.reflect.InvocationTargetException 在 java.lang.reflect.Method.invoke(本机方法) 在 android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 在 android.view.View.performClick(View.java:5274) 在 android.view.View$PerformClick.run(View.java:21543) 在 android.os.Handler.handleCallback(Handler.java:815) 在 android.os.Handler.dispatchMessage(Handler.java:104) 在 android.os.Looper.loop(Looper.java:207) 在 android.app.ActivityThread.main(ActivityThread.java:5728) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679) 引起:android.content.ActivityNotFoundException:找不到 显式活动类 {com.dreamfighter.myapplication/com.dreamfighter.myapplication.second}; 您是否在 AndroidManifest.xml 中声明了此活动? 在 android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1805) 在 android.app.Instrumentation.execStartActivity(Instrumentation.java:1523) 在 android.app.Activity.startActivityForResult(Activity.java:3968) 在 android.support.v4.app.BaseFragmentActivityJB.startActivityForResult(BaseFragmentActivityJB.java:48) 在 android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:75) 在 android.app.Activity.startActivityForResult(Activity.java:3920) 在 android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:856) 在 android.app.Activity.startActivity(Activity.java:4259) 在 android.app.Activity.startActivity(Activity.java:4227) 在 com.dreamfighter.myapplication.MainActivity.clickme(MainActivity.java:21) 在 java.lang.reflect.Method.invoke(本机方法) 在 android.support.v7.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:288) 在 android.view.View.performClick(View.java:5274) 在 android.view.View$PerformClick.run(View.java:21543) 在 android.os.Handler.handleCallback(Handler.java:815) 在 android.os.Handler.dispatchMessage(Handler.java:104) 在 android.os.Looper.loop(Looper.java:207) 在 android.app.ActivityThread.main(ActivityThread.java:5728) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:679) 08-21 14:06:02.510 20224-20224/com.dreamfighter.myapplication I/流程: 发送信号。 PID:20224 SIG:9

【问题讨论】:

  • 在布局中声明时将方法名称 click 更改为 clickme,并检查 SecondActivty 是否在 menofest.xml 上注册。
  • 您是否在 AndroidManifest.xml 中声明了第二个活动?
  • 在你的 logcat 中读取这一行 原因:android.content.ActivityNotFoundException: Unable to find explicit activity class {com.dreamfighter.myapplication/com.dreamfighter.myapplication.second};您是否在 AndroidManifest.xml 中声明了此活动?

标签: java android android-activity


【解决方案1】:

在您的 Menifest 文件中添加您的 second.java

 <activity
        android:name=".second"
        android:label="@string/second"
        />

【讨论】:

    【解决方案2】:

    确保您已在清单中声明该活动:

    <activity
        android:name=".second"
        android:theme="@style/AppTheme.NoActionBar" />
    

    使用您在应用中使用的主题。

    【讨论】:

      【解决方案3】:

      使用您的布局更改此按钮布局,或者您可以仅将android:onClick="clicme" 替换为android:onClick="clickme"

      <Button
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:text="New Button"
                  android:id="@+id/button"
                  android:layout_below="@+id/textView"
                  android:layout_toRightOf="@+id/textView"
                  android:layout_toEndOf="@+id/textView"
                  android:layout_marginTop="134dp"
                  android:onClick="clickme"
                  />
      

      【讨论】:

        【解决方案4】:

        检查 AndroidManifest.xml 文件。使用前需要在AndroidManifest.xml文件中注册每个activity。

        这里需要在AndroidManifest.xml中注册second.java

        【讨论】:

          【解决方案5】:

          在您的第二个活动中错误地更改此设置,您在第二个活动中设置了主要活动的 setContentView

          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_second);// change here
              b2 = (Button) findViewById(R.id.button2);
          }
          

          并确保您在清单文件中添加了活动

           <activity
              android:name=".second"
              android:label="@string/second"
              />
          

          【讨论】:

            【解决方案6】:

            使用接口OnClickListener试试这个public class second extends AppCompatActivity即时使用public class second extends AppCompatActivity implements View.OnClickListener

                 public class second extends AppCompatActivity  implements View.OnClickListener {
                    Button b2;
            
                        protected void onCreate(Bundle savedInstanceState) {
                            super.onCreate(savedInstanceState);
                            setContentView(R.layout.activity_main);
                            b2 = (Button) findViewById(R.id.button2);
                            b2.setOnClickListener(this);
            
                        }
                      }
            
                     @Override
                        public void onClick(View view) {
            
                            switch (view.getId())
                            {
                                case R.id.button2:
                                    Intent intent = new Intent(second.this,MainActivity.class);            
                                    startActivity(intent);
            
                            }
            
            }
            

            希望对你有帮助,

            【讨论】:

              【解决方案7】:

              在清单中声明您的第二个活动。

              <activity android:name=".SecondActivity"/>
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2021-01-16
                • 1970-01-01
                • 2012-11-29
                • 2014-09-19
                • 1970-01-01
                • 2016-02-03
                • 2019-01-20
                • 1970-01-01
                相关资源
                最近更新 更多