Android中的"Unable to start activity ComponentInfo"或者"Unable to instantiate activity ComponentInfo"的错误

简介:

 Android中的"Unable to start activity ComponentInfo"的错误

     最近在做一款音乐播放器的时候,然后在调试的过程中发现一直报这个错误"Unable to start activity ComponentInfo",从字面的意思看是无法启动某个activity组件,但是看了manifest文件,所有的activity组件都已经注册过了,为什么会报这种错误?后来发现原来是注册路径出了问题,最开始的代码是这样的:

复制代码
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package
="com.music"
android:versionCode
="1"
android:versionName
="1.0">
<uses-sdk android:minSdkVersion="5" />

<application android:icon="@drawable/icon" android:label="@string/app_name">

<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
</manifest>
复制代码

 对于MainActivity这个组件,程序启动的时候寻找它的时候,根据包的路径"package="com.music"加上".MainActivity"就是

"com.music.MainActivity",但是在工程中MainActivity是在"com.music.activity"这个包下,显然路径就是错的,因此会报无法找到某个组件的错误。因此更改组件的注册路径就可以解决这个问题:

   可以将<activity android:name=".MainActivity">

   改成其相对路径

  <activity android:name=".activity.MainActivity">

  或者也可以直接用绝对路径

  <activity android:name="com.music.activity.MainActivity">

注意:在注册组件的时候,如果在名称前面加了点'.',则表示该组件的路径是package的路径加上组件名,比如package='com.music',<activity android:name='.MainActivity'></activity>,则其完整路径为'com.music.MainActivity'。

如果没有加点,则表示绝对路径,如<activity android:name="com.music.activity.MainActivity">。

有一种特殊情况是,如果要注册的activity在当前package的根目录下,则前面的点'.'可写可不写。但是如果是在package包的子包下,如package='com.music',而MainActivity的绝对路径为'com.music.activity.MainActivity',则

<activity android:name=".activity.MainActivity">中的".activity.MainActivity"前面的点'.'不能省略。

本文转载自海 子博客园博客,原文链接:http://www.cnblogs.com/dolphin0520/archive/2011/12/02/2271922.html如需转载自行联系原作者


相关文章
|
2月前
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
83 6
|
2月前
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
Android面试高频知识点(4) 详解Activity的启动流程
27 3
|
2月前
|
缓存 前端开发 Android开发
Android实战之如何截取Activity或者Fragment的内容?
本文首发于公众号“AntDream”,介绍了如何在Android中截取Activity或Fragment的屏幕内容并保存为图片。包括截取整个Activity、特定控件或区域的方法,以及处理包含RecyclerView的复杂情况。
19 3
|
2月前
|
Android开发
Android面试之Activity启动流程简述
Android面试之Activity启动流程简述
18 0
|
3月前
|
消息中间件 Android开发 索引
Android面试高频知识点(4) 详解Activity的启动流程
讲解Activity的启动流程了,Activity的启动流程相对复杂一下,涉及到了Activity中的生命周期方法,涉及到了Android体系的CS模式,涉及到了Android中进程通讯Binder机制等等, 首先介绍一下Activity,这里引用一下Android guide中对Activity的介绍:
50 4
|
4月前
|
XML Android开发 数据格式
android中两个Activity同时设定了intent-filter的category为android.intent.category.LAUNCHER,会发生什么情况?
本文通过案例分析了在Android中当两个Activity都设置了`android.intent.category.LAUNCHER`类别时,会导致它们同时在应用启动器的"所有应用"页面显示为不同的启动入口。
87 2
android中两个Activity同时设定了intent-filter的category为android.intent.category.LAUNCHER,会发生什么情况?
|
3月前
|
Android开发 开发者
Android面试之Activity启动流程简述
每个Android开发者都熟悉的Activity,但你是否了解它的启动流程呢?本文将带你深入了解。启动流程涉及四个关键角色:Launcher进程、SystemServer的AMS、应用程序的ActivityThread及Zygote进程。核心在于AMS与ActivityThread间的通信。文章详细解析了从Launcher启动Activity的过程,包括通过AIDL获取AMS、Zygote进程启动以及ActivityThread与AMS的通信机制。接着介绍了如何创建Application及Activity的具体步骤。整体流程清晰明了,帮助你更深入理解Activity的工作原理。
53 0
|
7月前
|
数据库 Android开发 开发者
Android基础知识:请解释Activity的生命周期。
Android基础知识:请解释Activity的生命周期。
76 2
|
6月前
|
Android开发 UED
Android Activity的生命周期详解
Android Activity的生命周期详解
|
7月前
|
Android开发
Android Studio APP开发入门之活动Activity中启停活动页面的讲解及实战(附源码,包括Activity的启动结束、生命周期、跳转等)
Android Studio APP开发入门之活动Activity中启停活动页面的讲解及实战(附源码,包括Activity的启动结束、生命周期、跳转等)
124 0