2013-08-07 3 views
0

Итак, мое приложение Состоит из первого действия, которое показывает некоторый текст, а на панели действий есть меню «Файл», в котором я помещаю параметр «Мое местоположение».Android Second Activity Error

я вызвать другую активность в mainActivity с onOptionItemSelected следующим образом:

public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.action_photo: 
      openPhoto(); 
      return true; 
     case R.id.action_video: 
      openVideo(); 
      return true; 
     case R.id.action_map: 
      Intent intent = new Intent(this, GPSTracker.class); 
      startActivity(intent); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
    } 

в манифесте я объявить вторую активность следующим образом:

 <activity 
     android:name="com.example.locateme.GPSTracker" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
     </activity> 

и в GPSTracker.java я пишу это:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_gpstracker); 
} 

также есть мой код для поиска местоположения. Я запускаю приложение, bu, когда я нажимаю My Location, приложение отключается.

Here are the logcat errors after removing intent for GPS activity

The full code of the app is here, в случае может быть что-то я пропустил. Я называю второе действие неправильным способом?

+0

сообщение logcat error –

+0

Я добавил logcat в вопрос. Спасибо. –

+0

его не загружающая страница ваш lagcat –

ответ

1
java.lang.InstantiationException: can't instantiate class com.example.locateme.GPSTracker; no empty constructor 

- довольно очевидная ошибка.

Где-то в классе GPSTracker у вас есть определение, как

public GPSTracker(SomeClass referenceName) { 
    //... 
} 

Этот блок кода должен быть удален или заменен конструктором без Params. Первый вариант, если вы предпочитаете: используйте onCreate в качестве своего конструктора.

+0

да у меня есть. 'public GPSTracker (контекст контекста) { this.mContext = context; getLocation(); } ' –

+0

вы можете предложить мне, как мне его изменить? –

+0

@LuchFilip Вы можете удалить 'private Context mContext; 'из своего кода и использовать' this' вместо этого. И, конечно, удалить конструктор тоже. 'getLocation' может вызываться из' onCreate'. –

1

Во-первых, удалите фильтр намерений для вашей деятельности GPS в вашем Manifest.xml, здесь вы установили оба действия (Main и GPS) в качестве запуска. Установите только одно действие как LAUNCHER и MAIN. И тогда будет хорошо видеть, что LogCat Output знает, почему он сбой

+0

Я удалил фильтр намерений для активности gps и загрузил logcat. спасибо за помощь. –