Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android中的清单出错(错误:无法实例化活动组件信息)_Java_Android_Android Manifest - Fatal编程技术网

Java android中的清单出错(错误:无法实例化活动组件信息)

Java android中的清单出错(错误:无法实例化活动组件信息),java,android,android-manifest,Java,Android,Android Manifest,我正在编写一个Android应用程序,突然它从清单中出错,应用程序不再出现了! 我搜索了很多,尝试了很多东西,但我不知道问题出在哪里。我把舱单类放在这里。 有人能帮我吗? 提前谢谢 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.ruby" android:version

我正在编写一个Android应用程序,突然它从清单中出错,应用程序不再出现了! 我搜索了很多,尝试了很多东西,但我不知道问题出在哪里。我把舱单类放在这里。 有人能帮我吗? 提前谢谢

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.ruby"
android:versionCode="1"
android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="Activity.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="Activity.ToolsActivity" />
    <activity android:name="Activity.AboutActivity" />
</application>
</manifest>
<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity

        android:name="com.example.ruby.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="Activity.ToolsActivity" />
    <activity android:name="Activity.AboutActivity" />
</application>
</manifest>
以下是日志:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity

        android:name="com.example.ruby.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="Activity.ToolsActivity" />
    <activity android:name="Activity.AboutActivity" />
</application>
</manifest>

删除出现在Main Activity、ToolsActivity和AboutActivity前面的
Activity
单词,而不是:

android:name="Activity.MainActivity"
<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity

        android:name="com.example.ruby.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="Activity.ToolsActivity" />
    <activity android:name="Activity.AboutActivity" />
</application>
</manifest>
使用

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity

        android:name="com.example.ruby.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="Activity.ToolsActivity" />
    <activity android:name="Activity.AboutActivity" />
</application>
</manifest>
工具性和触觉性也是如此

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity

        android:name="com.example.ruby.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="Activity.ToolsActivity" />
    <activity android:name="Activity.AboutActivity" />
</application>
</manifest>
来自android的:名称:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity

        android:name="com.example.ruby.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="Activity.ToolsActivity" />
    <activity android:name="Activity.AboutActivity" />
</application>
</manifest>
实现活动(活动的子类)的类的名称。属性值应该是一个完全限定的类名(例如,“com.example.project.ExtercurialActivity”)但是,作为简写,如果名称的第一个字符是句点(例如,“.ExtracurialActivity”),则会将其附加到元素中指定的包名称中。

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity

        android:name="com.example.ruby.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="Activity.ToolsActivity" />
    <activity android:name="Activity.AboutActivity" />
</application>
</manifest>
编辑:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity

        android:name="com.example.ruby.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="Activity.ToolsActivity" />
    <activity android:name="Activity.AboutActivity" />
</application>
</manifest>
好的,问题出在你的包名上。您的所有源文件都驻留在名为Activity的包中,因此您有Activity.MainActivity等。但是……在清单中,您将包指定为com.example.ruby

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity

        android:name="com.example.ruby.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="Activity.ToolsActivity" />
    <activity android:name="Activity.AboutActivity" />
</application>
</manifest>
按照惯例,包名的格式应该是com.companyname.applicationname,在您的示例中是com.example.ruby。所以你要做的是:

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="18" />

<application
    android:allowBackup="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity

        android:name="com.example.ruby.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name="Activity.ToolsActivity" />
    <activity android:name="Activity.AboutActivity" />
</application>
</manifest>
  • 保持清单原样,无需更改任何内容(当然,除了删除活动前面的单词
    Activity
    ,如我在原始帖子中所述)
  • 将源文件(MainActivity.java、ToolsActivity.java等)所在的包名从Activity更改为com.example.ruby(注意它与清单中的相同)
  • 在每个源文件的顶部,您有一行:

    package Activity;
    
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
    
            android:name="com.example.ruby.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="Activity.ToolsActivity" />
        <activity android:name="Activity.AboutActivity" />
    </application>
    </manifest>
    
  • 将其更改为:

        package com.example.ruby;
    
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
    
            android:name="com.example.ruby.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="Activity.ToolsActivity" />
        <activity android:name="Activity.AboutActivity" />
    </application>
    </manifest>
    

    阅读有关包的更多信息。

    对于名称属性的活动标记,您应该提供完整的文件路径,或者如果是相同的包,则提供相对于包文件路径的路径

    <activity
        android:name=".MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
    
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".ToolsActivity" />
    <activity android:name=".AboutActivity" />
    
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
    
            android:name="com.example.ruby.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="Activity.ToolsActivity" />
        <activity android:name="Activity.AboutActivity" />
    </application>
    </manifest>
    

    我相信您已经在活动标签上的android:name属性中添加了活动:

    <activity
        android:name="Activity.MainActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
    
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
    
            android:name="com.example.ruby.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="Activity.ToolsActivity" />
        <activity android:name="Activity.AboutActivity" />
    </application>
    </manifest>
    
    
    
    将android:name更改为“MainActivity”

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
    
            android:name="com.example.ruby.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="Activity.ToolsActivity" />
        <activity android:name="Activity.AboutActivity" />
    </application>
    </manifest>
    
    如果活动的名称与manifest标记的package属性中指定的不在同一个包中,请按如下方式指定包:“com.example.MainActivity”

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
    
            android:name="com.example.ruby.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="Activity.ToolsActivity" />
        <activity android:name="Activity.AboutActivity" />
    </application>
    </manifest>
    

    Jonathan

    如果这是你的全部清单文件,你就少了一个

    </manifest>
    
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
    
            android:name="com.example.ruby.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="Activity.ToolsActivity" />
        <activity android:name="Activity.AboutActivity" />
    </application>
    </manifest>
    
    
    

    底部的end标记。

    Exception表示,
    ClassNotFoundException
    和IDicate未找到具有包名称的Main活动,因此进行了一些更改,现在可以工作了:
    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
    
            android:name="com.example.ruby.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="Activity.ToolsActivity" />
        <activity android:name="Activity.AboutActivity" />
    </application>
    </manifest>
    

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="18" />
    
    <application
        android:allowBackup="true"
        android:icon="@drawable/icon"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
    
            android:name="com.example.ruby.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
    
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="Activity.ToolsActivity" />
        <activity android:name="Activity.AboutActivity" />
    </application>
    </manifest>
    
    
    
    您从哪里得到错误信息?哪一行?你有
    Activity
    pacage name吗?错误到底是什么?@Rahl_Pryde我不知道,但错误是:无法实例化Activity componentinfo如果确实是这样的话(并不是因为它在复制粘贴过程中消失),那么很明显@Yjay:)我忘了在这里复制结束行,但不,这不是问题。我是否可以给你发电子邮件,你检查一下我的项目?不,但是把它放在某个地方,并提供一个下载链接。您是否删除了
    活动
    ?还是个错误?@Melquides是的,我做了,但还是个错误!这是[password is ruby]是您在com.example.ruby包中的主要活动,这就是问题所在。您的活动位于名为
    Activity
    的包中,在清单中,您的包名为com.example.ruby。查看有关如何修复它的更新答案。