首页 > 其他分享 >安卓的启动activity

安卓的启动activity

时间:2022-12-07 22:55:05浏览次数:34  
标签:java 启动 os 安卓 activity android com View

一、关于安卓的启动

1、安卓的一个主要的xml配置文件是:AndroidManifest.xml

该文件放在应用的根目录,那么具体根目录是哪里需要根据各个项目去确定(不是工程的根目录,可能是对应的app的src->main->的目录下面,具体根据各个工程的设置)

该文件中的application tag下面可以放置activity并且可以有多个activity,但是每个activity对应的android:name均要不一致

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.SystemWidget"
        tools:targetApi="31">
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

            <meta-data
                android:name="android.app.lib_name"
                android:value="" />
        </activity>
        <activity android:name=".MyViewTest" />
        <activity android:name=".TopBarTest" />
    </application>

如上所示,有3个activity,但是第一个比较特殊还有intent-filter, 对应的action是MAIN表明程序将会以MainActivity类先启动,对应的category是LAUNCHER指明了该应用的图标,那么如果把该launcher去掉会发生什么事情呢?看到有别的博客说是可以启动但是没有图标,这里尝试了一下发现报了如下的错误:Could not identify launch activity: Default Activity not found

 

二、关于activity在学习过程中遇到的问题

1、编写了类class TopBarTest extends Activity, 然后在类MainActivity中进行调用:startActivity(new Intent(this, TopBarTest.class)); 发现报错,报了如下的错误:

E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.agiledeveloper.systemwidget, PID: 26002
    java.lang.IllegalStateException: Could not execute method for android:onClick
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:446)
        at android.view.View.performClick(View.java:7317)
        at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1219)
        at android.view.View.performClickInternal(View.java:7291)
        at android.view.View.access$3600(View.java:838)
        at android.view.View$PerformClick.run(View.java:28247)
        at android.os.Handler.handleCallback(Handler.java:900)
        at android.os.Handler.dispatchMessage(Handler.java:103)
        at android.os.Looper.loop(Looper.java:219)
        at android.app.ActivityThread.main(ActivityThread.java:8668)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)
     Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:441)
        at android.view.View.performClick(View.java:7317) 
        at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1219) 
        at android.view.View.performClickInternal(View.java:7291) 
        at android.view.View.access$3600(View.java:838) 
        at android.view.View$PerformClick.run(View.java:28247) 
        at android.os.Handler.handleCallback(Handler.java:900) 
        at android.os.Handler.dispatchMessage(Handler.java:103) 
        at android.os.Looper.loop(Looper.java:219) 
        at android.app.ActivityThread.main(ActivityThread.java:8668) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109) 
     Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.agiledeveloper.systemwidget/com.agiledeveloper.systemwidget.TopBarTest}; have you declared this activity in your AndroidManifest.xml?
        at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2118)
        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1746)
        at android.app.Activity.startActivityForResult(Activity.java:5412)
        at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:712)
        at android.app.Activity.startActivityForResult(Activity.java:5337)
        at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:693)
        at android.app.Activity.startActivity(Activity.java:5819)
        at android.app.Activity.startActivity(Activity.java:5787)
        at com.agiledeveloper.systemwidget.MainActivity.btnTopBar(MainActivity.java:36)
        at java.lang.reflect.Method.invoke(Native Method) 
        at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:441) 
        at android.view.View.performClick(View.java:7317) 
        at com.google.android.material.button.MaterialButton.performClick(MaterialButton.java:1219) 
        at android.view.View.performClickInternal(View.java:7291) 
        at android.view.View.access$3600(View.java:838) 
        at android.view.View$PerformClick.run(View.java:28247) 
        at android.os.Handler.handleCallback(Handler.java:900) 
        at android.os.Handler.dispatchMessage(Handler.java:103) 
        at android.os.Looper.loop(Looper.java:219) 
        at android.app.ActivityThread.main(ActivityThread.java:8668) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109) 
View Code

刚开始看了错误前面几行,实在是看不出为啥崩溃,后来看到这一行错误提示时候:Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.agiledeveloper.systemwidget/com.agiledeveloper.systemwidget.TopBarTest}; have you declared this activity in your AndroidManifest.xml?

才发现原来继承Activity,使用Activity需要在AndroidManifest.xml中添加对应的Activity,即上面的xml中的最后一行

标签:java,启动,os,安卓,activity,android,com,View
From: https://www.cnblogs.com/czwlinux/p/16964828.html

相关文章

  • 安卓APP源码和设计报告——运动健身教学
    实验报告课程名称实验名称指导教师专业班级学号姓名目录一、设计背景31.需求分析32.课题研究的目的和意义3二、系统需求分析与开发环境31.系统功能需求32.系统界面需......
  • weblogic开启debug模式启动时出现ERROR: Cannot load this JVM TI agent twice
     分析错误:weblogic开启debug模式启动时出现下面的错误:ERROR:CannotloadthisJVMTIagenttwice,checkyourjavacommandlineforduplicatejdwpoptions.Erroroc......
  • 一次安卓逆向记录
    前言前段事件,因为公司附近有了确诊病例,我刚好与确诊人员有时空交错,所以被居家隔离,于是开启了相对漫长的居家隔离状态,在这段无所事事的时间中,我开始了之前一直想做,但是没有......
  • uboot启动流程
    编译完uboot,uboot源代码根目录会生成链接脚本:u-boot.lds,里面指明了执行的第一个函数是_start _start位于arch\arm\lib\vectors.S,其最开始的代码如下: 所以先跳转到......
  • dubbo服务地址错误或服务没启动导致项目启动不了
    在开发项目中,遇到错误,要做的首要事情就是查看错误日志。本次遇到的问题,主要是自己在eclipse启动项目,项目启动一半卡住了,控制台没有任何相关错误信息。自己就这样无可奈何了......
  • Centos开机自启动配置方式汇总
    文章目录​​前言​​​​一、Centos上配置开机自启动的几种方式​​​​二、实践演示​​​​1、在/etc/rc.d/rc.local中添加服务启动命令​​​​2、通过chkconfig配置​......
  • Kibana开机启动配置
    文章目录​​前言​​​​配置过程​​​​1、在/etc/init.d目录下,新建脚本kibana​​​​2、增加脚本的可执行权限​​​​3、查看chkconfiglist​​​​4、把服务添加到c......
  • Idea中1个springboot项目启动N份服务
    使用的idea版本是IntelliJIDEA2022.2.3(UltimateEdition)Build#IU-222.4345.14,builtonOctober5,2022 01  02  从服务ImApplication18081复制......
  • 【LINUX;NTPD】NTPD服务启动不了,ConditionFileIsExecutable=!/usr/sbin/chronyd was n
    回忆起来BUG实在有点sb(苦于英语不好),遂记。背景:新服务器加固安装ntpdntpd、ntp安装成功,服务无法启动(systemctlstartntpd,再status查询发现服务还在inactive)[root@te......
  • 显示本机IP并判断IP地址,批量创建用户,安装nginx服务并启动
    完成一个shell脚本,脚本的作用。1.运行脚本可以显示出本机的ip地址2.如果ip地址中有3这个数字,那么就打印出当前的系统时间3.如果ip地址中不含3这个数字,就批量建立用户mag......