更改android中的默认活动

时间:2014-05-16 14:50:38

标签: android manifest

你好我想改变默认活动。但是,当我这样做时,该应用程序根本没有发生任何错误

<activity 
        android:name="com.example.dimmer.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="com.example.dimmer.DevicesActivity" >
    </activity>

这样MainActivty就可以毫无问题地启动。当我按下按钮时,它也会转到设备活动。所以一切正常。 现在我需要DevcieACtivty作为默认值。

我改变了Manifest

<activity 
            android:name="com.example.dimmer.DevicesActivity"
            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="com.example.dimmer.MainActivity" >
        </activity>

但现在app还没有推出。没有错误。没有在控制台中写入。 它什么都不做, 可能有什么问题?

它开始写下面的错误 ActivityManager:开始:Intent {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] cmp = com.example.dimmer / .MainActivity} [2014-05-16 21:17:10 - Dimmer] ActivityManager:java.lang.SecurityException:Permission Denial:start Intent {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] flg =来自null的0x10000000 cmp = com.example.dimmer / .MainActivity}(pid = 13093,uid = 2000)需要null

完整清单

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

    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="14" />
    <uses-permission android:name="android.permission.INTERNET" /> 

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

        <activity 
            android:name="com.example.dimmer.DevicesActivity"
            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="com.example.dimmer.MainActivity" >
        </activity>

    </application>

</manifest>


[2014-05-16 22:13:25 - Dimmer] Android Launch!
[2014-05-16 22:13:25 - Dimmer] adb is running normally.
[2014-05-16 22:13:25 - Dimmer] Performing com.example.dimmer.MainActivity activity launch
[2014-05-16 22:13:26 - Dimmer] Uploading Dimmer.apk onto device 'SH17VT514235'
[2014-05-16 22:13:26 - Dimmer] Installing Dimmer.apk...
[2014-05-16 22:13:29 - Dimmer] Success!
[2014-05-16 22:13:29 - Dimmer] Starting activity com.example.dimmer.MainActivity on device SH17VT514235
[2014-05-16 22:13:29 - Dimmer] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.dimmer/.MainActivity }
[2014-05-16 22:13:29 - Dimmer] ActivityManager: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.example.dimmer/.MainActivity } from null (pid=15458, uid=2000) requires null

5 个答案:

答案 0 :(得分:6)

由于您已将软件包定义为“com.example.dimmer”,因此您可以删除软件包名称并仅使用活动with dot in front的名称:

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

    <activity 
        android:name=".DevicesActivity"
        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=".MainActivity" >
    </activity>

</application>

此外,请检查Eclipse中的运行配置设置。如果您的启动活动设置为MainActivity,并且在清单中将DevicesActivity设置为main,则在通过Eclipse启动时,您的应用可能无法启动。单击箭头图标,然后选择“运行配置”,

enter image description here

然后确保选择DevicesActivity作为Launch:

enter image description here

答案 1 :(得分:0)

在手机上卸载应用,然后重新下载。

答案 2 :(得分:0)

确保在setContentView方法中实施onCreate

以其他方式尝试清理项目 Project > Clean 并运行它。

答案 3 :(得分:0)

我不确定但现在你可以先走一步了。
如  1.删​​除Android.R(在您的活动中上面)
 2.或者替换package.R,例如,com.example.name.R
 3.检查res文件夹或子文件夹资源。
 如布局属性是否正确。
 4.删除gen和bin文件夹。
 5.这样清理你的项目:project =&gt; clean
 6.重启你的日食。

请记住,如果找不到您的资源,则显示此类型错误。

祝你好运!

答案 4 :(得分:0)

点击RUN图标箭头,然后选择&#34;运行配置&#34;
Android Aplication =&gt; selsect项目
打开目标标签
选择始终提示到设备
clicke run并选择 Divaice online

相关问题