qq_34613346 2019-05-06 10:28 采纳率: 11.1%
浏览 286
已结题

引用zhihu的图片库报错,不知道原因

图片说明

  • 写回答

2条回答 默认 最新

  • 『青春』。已逝 2019-05-06 12:10
    关注

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

    <?xml version="1.0" encoding="utf-8"?>
    package="com.music"
    android:versionCode="1"
    android:versionName="1.0">

    <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>
    


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

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

    可以将

    改成其相对路径

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

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

    如果没有加点,则表示绝对路径,如。

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

    中的".activity.MainActivity"前面的点'.'不能省略。

    评论

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题