你好,我想更改默认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
由于您已经将包定义为“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作为启动: