2014-05-16 4 views
3

привет Я хочу изменить активность по умолчанию. Но когда я делаю, что приложение не запускается вообще без каких-либо ошибокИзменение активности по умолчанию в android

<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 запускает без каких-либо proble. Он также переходит к активности устройства, когда я нажимаю кнопку. Так что все работает нормально. Теперь мне нужно, чтобы 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> 

но теперь приложение не запускается. нет ошибок. на консоли ничего не написано. это просто ничего не делает, , что может быть проблемой?

Он начинает писать следующее сообщение об ошибке ActivityManager: Начало: Intent {действие = android.intent.action.MAIN кошка = [android.intent.category.LAUNCHER] = com.example.dimmer CMP/.MainActivity} [2014-05-16 21:17:10 - Dimmer] ActivityManager: java.lang.SecurityException: отказ от разрешения: начало Intent {act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] flg = 0x10000000 = CMP com.example.dimmer/.MainActivity} от нуля (PID = 13093, UID = 2000) требует нулевой

полного манифест

<?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 
+0

Перезапуск Eclipse. – Karakuri

+0

не помогло. по-прежнему не запускается с DeviceActivity по умолчанию – user3485986

+0

Возможно, вы пытаетесь запустить его с помощью ярлыка на рабочем экране вашего устройства? Если это так, эти ярлыки могут содержать старую активность по умолчанию, а не указывать на новую основную активность. – marmor

ответ

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> 

Кроме того, проверьте параметры конфигурации Run в Eclipse, , Если ваша активность запуска была установлена ​​в MainActivity, и в манифесте вы делаете DeviceActivity основным, ваше приложение может не запускаться при запуске через Eclipse.Нажмите стрелку на значок RUN и выберите "Run Configurations",

enter image description here

Затем убедитесь, что вы выбрали DevicesActivity в качестве старта:

enter image description here

+0

Изменить 'android: name =" DevicesActivity "' to 'android: name =". DevicesActivity "' – Lal

+0

не работает. он по-прежнему пытается запустить MainActivity. может быть, есть другое место, где я должен его изменить? – user3485986

+0

Проверьте, что вы запускаете в Run Configuration. – Melquiades

0

Unin остановите приложение на своем телефоне и перезагрузите его.

+0

пытался удалить, установить, перезапустить eclipse. он не работает. – user3485986

+0

Если вы вернетесь, как вы были, когда он работал, приложение снова работает? – bobby4078

+0

есть. если я вернусь, когда MainActivity по умолчанию, то он работает. в противном случае не – user3485986

0

Убедитесь, что вы использовали setContentView в методе onCreate.

Попробуйте очистить проект Project > Clean и запустите его.

+0

setContentView (R.layout.activity_devices); уже сделал это. и я очистил проект. не помогло. – user3485986

+0

и DeviceActivity отлично работают, когда я запускаю его из MainActivity. – user3485986

0

Я не уверен, но теперь вы можете сделать какой-то шаг головой.
, такие как
1. удалить Android.R (в выше в вашей деятельности)
2. или заменить package.R, например, com.example.name.R
3. Проверка вы рес папку или подпапку Ресурсы .
, например, атрибут раскладки или нет.
4. Удалить папку gen и bin.
5. очистите проект таким образом: project => clean
6. перезапустите свое затмение.

Помните, что если ваш ресурс не найден, тогда отобразите этот тип ошибки.

Удачи!

0

Нажмите стрелку на значок RUN и выберите «Конфигурация Run "
Android Aplication => selsect project
открыть вкладку цели
выберите Всегда запрос на divice
clicke перспективе и выберите Divaice онлайн

Смежные вопросы