2015-06-25 4 views
0

Мое приложение «К сожалению, перестало работать», но в отладочной версии, похоже, нет ошибок. Пока это всего лишь несколько кнопок и текст с одной кнопкой, я попытался подключиться к новому действию. Это консоль работает,К сожалению, «приложение» перестало работать - ошибок нет

Waiting for device. 
Target device: Nexus_6_API_22 [emulator-5554] 
Uploading file 
local path: C:\Users\CALLUM\AndroidStudioProjects\Switch-game2\app\build\outputs\apk\app-debug.apk 
remote path: /data/local/tmp/gameswitch.switch_game 
No apk changes detected. Skipping file upload, force stopping package instead. 
DEVICE SHELL COMMAND: am force-stop gameswitch.switch_game 
Launching application: gameswitch.switch_game/gameswitch.switch_game.MainActivity. 
DEVICE SHELL COMMAND: am start -D -n "gameswitch.switch_game/gameswitch.switch_game.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER 
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=gameswitch.switch_game/.MainActivity } 
Connected to the target VM, address: 'localhost:8610', transport: 'socket' 
Disconnected from the target VM, address: 'localhost:8610', transport: 'socket' 

и вот мой код,

<?xml version="1.0" encoding="utf-8"?> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name=".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> 

    //new below here2 
    <activity 
     android:name=".GamePlay" 
     android:label="@string/app_name"> 
     <intent-filter> 
      <action 
       android:name="in.wptrafficanalyzer.AnotherActivity"/> 
      <category 
       android:name="android.intent.category.DEFAULT"/> 
     </intent-filter> 
    </activity> 

</application> 

и следующая часть

package gameswitch.switch_game; 

import android.content.DialogInterface; 
import android.content.Intent; 
import android.graphics.Typeface; 
import android.support.v7.app.ActionBarActivity; 
import android.os.Bundle; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.widget.Button; 
import android.widget.TextView; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.Menu; 

public class MainActivity extends ActionBarActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    //new below 
    //Typeface myTypeface = Typeface.createFromAsset(getAssets(), "Retro.ttf"); 
    //TextView myTextView = (TextView)findViewById(R.id.title); 
    //myTextView.setTypeface(myTypeface); 

    //new below 2 
    OnClickListener listnr = new OnClickListener(){ 
     @Override 
       public void onClick(View v){ 
      Intent i = new Intent("GamePlay"); 
      startActivity(i); 
     } 
    }; 
    Button btn = (Button) findViewById(R.id.btn); 
    btn.setOnClickListener(listnr); 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

} 

, а остальные классы и co - стандартные строки и прочее. Im довольно новый для программирования в Android Studio и им действительно не уверен, что происходит, поскольку нет никаких подчеркиваний или ошибок, которые я вижу.

Так работает снова ошибка, которая появляется следующим образом

Process: gameswitch.switch_game, PID: 2774 
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=GamePlay } 
     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1781) 
     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1501) 
     at android.app.Activity.startActivityForResult(Activity.java:3745) 
     at android.app.Activity.startActivityForResult(Activity.java:3706) 
     at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:820) 
     at android.app.Activity.startActivity(Activity.java:4016) 
     at android.app.Activity.startActivity(Activity.java:3984) 
     at gameswitch.switch_game.MainActivity$1.onClick(MainActivity.java:32) 
     at android.view.View.performClick(View.java:4780) 
     at android.view.View$PerformClick.run(View.java:19866) 
     at android.os.Handler.handleCallback(Handler.java:739) 
     at android.os.Handler.dispatchMessage(Handler.java:95) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5257) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) 
+2

Вы пробовали просмотреть свой логарифм? – andrewdleach

+0

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

+0

Итак, я снова запустил его, и на этот раз он повесился немного дольше, и у меня была ошибка при сбое, что лучше. Тем не менее, в моем фактическом коде ничего не подчеркивается как неправильное. – 8673589

ответ

1

Ваше намерение неправильно. Вы должны либо explicty установить активность

Intent intent = new Intent(this, GamePlay.class); 

Или использовать действие, Вы заявляете в своем манифесте

Intent intent = new Intent(); 
intent.setAction("in.wptrafficanalyzer.AnotherActivity"); 

Ваш код не удалось, потому что вы запускаете намерение действия необъявленной.

+0

Ах да, я могу видеть это сейчас, имеет смысл. Спасибо, что поняли это. – 8673589

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