当前位置: 首页 > 知识库问答 >
问题:

在android中更改默认activity

刁瀚昂
2023-03-14

你好,我想更改默认activity。但当我这样做的时候,应用程序启动时不会出现任何错误

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

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

我就这样改变舱单

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

但现在应用程序没有上线。没有错误。控制台中没有任何内容。只是什么都做不到,会有什么问题吗?

开始写入以下错误ActivityManager:starting: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:权限拒绝:starting Intent{act=Android.Intent.Action.Main cat=[Android.Intent.Category.Launcher]flg=0x10000000 CMP=com.example.Dimmer/.MainActivity}from 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

共有1个答案

马德厚
2023-03-14

由于您已经将包定义为“com.example.dimmer”,因此您可以删除包名,只使用前面带有点的activity的名称:

<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中的运行配置设置。如果您的启动activity设置为MainActivity,并且在manifest中将DevicesActivity设置为main,那么在通过Eclipse启动时,您的应用程序可能无法启动。单击RUN图标的箭头并选择“RUN Configurations”,

然后确保选择DevicesActivity作为启动:

 类似资料:
  • 问题内容: 如何更改默认外壳?该命令当前显示: 我想将其更改为Bash。 问题答案: 尝试linux命令。 详细命令为。它将提示您输入密码。您的默认登录Shell 现在是。 您必须注销并重新登录才能看到此更改。 手册页中引用了以下内容: chsh命令更改用户登录外壳。这确定了用户初始登录命令的名称。普通用户只能为自己的帐户更改登录外壳,超级用户可以为任何帐户更改登录外壳 此命令将永久更改默认登录外

  • 我不小心把我的本地主推到gitlab上的一个分支,现在它是默认的。有没有办法重命名这个分支或设置一个新的主分支为主?

  • 我在应用程序中使用底部栏。但我想更改底部栏中的默认项(选项卡)。我不使用任何外部库。如何在应用程序运行时设置我最喜欢的选项卡。 我的代码:

  • 我最近将Android Studio从0.6更新到0.8.6,似乎指定默认“运行”配置的功能已被删除(或者移动到我需要帮助的位置)。我能够在调试或发布模式下生成签名的APK(生成向导已更改为允许我此时选择构建变体),但似乎无法找到如何选择构建变体以供常规使用。换句话说,当我单击“运行”gradle执行,我需要运行。关于如何改变这一点的任何想法? 编辑:当我选择“调试”而不是“运行”时,gradle

  • 字体Monospaced映射到不同系统上的不同字体。在Windows上,它被映射到“Courier”,在Linux上,它被映射到“Lucida Typewriter”。 http://ui.netbeans.org/docs/ui/editor_fonts_colors/editor_fonts_and_colors.htm 我在windows上,想将单倍行距字体映射到“consolas”而不是“

  • 我正在我的Windows 10 PC上使用Visual Studio Code。我想将我的默认终端从Windows PowerShell更改为Ubuntu上的Bash(在Windows上)。 我该怎么做呢?