2015-06-09 5 views
0

У меня есть StarterListActivity, который начинается с двух других: Multitouch и Accelerometer.
При первом касании ListActivity он запускается очень хорошо.
Второе, однако, не принято.
отчеты LogCat:Не удается начать деятельность с явным намерением

06-09 22:42:55.293 12227-12227/com.mainpackage.api E/AndroidRuntime﹕ FATAL EXCEPTION: main 
    android.content.ActivityNotFoundException: Unable to find explicit activity class 
{com.mainpackage.api/com.mainpackage.api.Accelerometer}; 
have you declared this activity in your AndroidManifest.xml? 

Я прочитал связанные вопросы, но они не помогли мне.
Starter активность:

public class Starter extends ListActivity { 

    private String[] tests = { "MultiTouch", "Accelerometer" }; 

    @Override 
    public void onCreate(Bundle saved) { 
     super.onCreate(saved); 
     ListAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,tests); 
     this.setListAdapter(adapter); 

    } 

    @Override 
    public void onListItemClick(ListView list, View view, int position, long id) { 
     super.onListItemClick(list,view,position,id); 
     String test = tests[position]; 
     try { 
      Class clazz = Class.forName("com.mainpackage.api."+test); 
      Intent i = new Intent(this,clazz); 
      startActivity(i); 
     } catch (ClassNotFoundException e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Manifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.mainpackage.api"> 

    <application android:allowBackup="true" android:label="@string/app_name" 
     android:icon="@mipmap/ic_launcher" android:theme="@style/AppTheme"> 
     <activity 
      android:name=".Starter" 
      android:label="@string/app_name" 
      > 
      <intent-filter> 
       <category android:name="android.intent.category.LAUNCHER" /> 
       <action android:name="android.intent.action.MAIN" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".MultiTouch" 
      android:label="MultiTouch" /> 
     <activtiy 
      android:name=".Accelerometer" 
      android:label="Accelerometer" /> 

    </application> 

</manifest> 

MultiTouch и Accelerometer нет ошибок. Я попробовал их отдельно.
Любые идеи?

+0

, Что имя пакета акселерометр – 3xplore

+0

com.mainpackage.api – Anarantt

+0

Они все лежат в одном пакете – Anarantt

ответ

2

Во-первых, не используйте Class.forName(). Используйте либо if, либо Class[] и просто укажите объекты Accelerometer.class и MultiTouch.class.

Во-вторых, ваш манифеста:

<activtiy 
     android:name=".Accelerometer" 
     android:label="Accelerometer" /> 

, который имеет имя элемента по буквам неправильно. Попробуйте:

<activity 
     android:name=".Accelerometer" 
     android:label="Accelerometer" /> 
+0

Спасибо, что заметили! – Anarantt

+0

Деятельность, вы указали ее activtiy – mobilepotato7

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