2014-01-18 9 views
1

Я переименовал свой класс MainActivity в DataActivity и добавил новый основной класс активности с IntelliJ IDEA в качестве основного вида деятельности. Я изменил файл AndroidManifest.xml на следующее:Не удается запустить приложение после замены основной активности в Android

<application android:label="@string/app_name" android:icon="@drawable/icon"> 
     <activity android:name=".DataActivity" 
        android:screenOrientation="portrait"> 
     </activity> 
     <activity android:name=".MainActivity" android:screenOrientation="portrait" 
        android:label="@string/app_name"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN"/> 
       <category android:name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 
     </activity> 

я удалил приложение с телефона и удалил кэш компилятора. При установке, я получаю следующее исключение:

Запуск приложения: com.example.DataTest/com.example.DataTest.DataActivity.

ракушка КОМАНДА: я начать -n "com.example.DataTest/com.example.DataTest.DataActivity" -a -c android.intent.action.MAIN android.intent.category.LAUNCHER java.lang .SecurityException: отказ от разрешения: начало выполнения { act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER] flg = 0x10000000 cmp = com.example.DataTest/.DataActivity} от null (pid = 5882, uid = 2000) требует нулевых значений

Что еще я должен делать?

ответ

0

This post помог мне, где искать. В комментариях zeh утверждает, что SDK содержит подтверждение первоначальной активности. Я проверил конфигурацию запуска, и в моей версии IDEA он был изменен с «Запустить действие по умолчанию» на «Запуск активности: DataActivity». Теперь он работает нормально.

0

Изменить его к этому, чтобы включить Намерение фильтры с новым основным видом деятельности:

<activity android:name=".DataActivity" 
      android:screenOrientation="portrait"> 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN"/> 
     <category android:name="android.intent.category.LAUNCHER"/> 
    </intent-filter> 
</activity> 
<activity android:name=".MainActivity" android:screenOrientation="portrait" 
      android:label="@string/app_name"> 
</activity> 

и удалите «MainActivity», если она больше не существует. т.е. удалить это:

<activity android:name=".MainActivity" android:screenOrientation="portrait" 
      android:label="@string/app_name"> 
</activity> 
+1

Вы меня неправильно поняли. Я хочу, чтобы MainActivity был основным видом деятельности, поэтому я переименовал оригинал в DataActivity. Я не могу удалить его. – Nestor

+0

Вы пытаетесь запустить приложение из «DataActivity» в командной строке оболочки. Вы не можете запускать какую-либо деятельность, кроме той, которая имеет действие «MAIN», – Jim