Мое приложение вылетает, когда я использую кнопку меню, чтобы переключиться на новую страницу и вызвать новую активность.Я запрограммировал одну и ту же кнопку меню / Активность в нескольких приложениях, и у меня никогда не было проблем.
В моем приложении есть следующие классы:
- SplashActivity.java
- MainActivity.java
- AboutUs.Java
Я протестировал кнопку меню с повторным открытием SplashActivity, и она работала, поэтому ошибка не с кнопкой меню и вызовом функции,Я также изменил содержимое файла AboutUs.java, чтобы в нем не было ничего, кроме импорта и файла R.id.about_us, и он по-прежнему не работал, что заставляет меня думать, что на странице не было ошибок.
Моя ошибка LogCat:
ERROR/AndroidRuntime(667):
ERROR: thread attach failed
08-04 12:07:13.039:
ERROR/AndroidRuntime(675):
ERROR: thread attach failed
08-04 12:07:19.119:
ERROR/gralloc(68): [unregister] handle 0x3ea8d8 still locked (state=40000001)
08-04 12:07:23.489:
ERROR/global(685): Deprecated Thread methods are not supported.
08-04 12:07:23.489:
ERROR/global(685): java.lang.UnsupportedOperationException
08-04 12:07:23.489:
ERROR/global(685): at java.lang.VMThread.stop(VMThread.java:85)
08-04 12:07:23.489:
ERROR/global(685): at java.lang.Thread.stop(Thread.java:1379)
08-04 12:07:23.489:
ERROR/global(685): at java.lang.Thread.stop(Thread.java:1344)
08-04 12:07:23.489:
ERROR/global(685): at com.peakmobiledesigns.kitchenunitconverter.SplashActivity$1.run(SplashActivity.java:28)
Java меню в MainActivity, которое вызывает AboutUs.java:
//menu starts here
@Override
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()){
case R.id.feedback:
final Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("plain/text");
intent.putExtra(Intent.EXTRA_EMAIL, new String[]"peakmobiledesigns@gmail.com"});
startActivity(intent);
return true;
case R.id.about_us:
startActivity(new Intent("com.peakmobiledesigns.kitchenunitconverter.ABOUTUS"));
return true;
}
return false;
}
//menu ends here
И вот что я перечислил для этого действия в манифесте Android:
<activity android:name=".AboutUs" android:screenOrientation="portrait">
<intent-filter>
<action android:name="com.peakmobiledesigns.kitchenunitconverter.ABOUTUS" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
Вот Java для активности всплеска:
пакет com.peakmobiledesigns.kitchenunitconverter;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class SplashActivity extends Activity {
protected int _splashTime = 2000;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
Thread splashTread = new Thread() {
@Override
public void run() {
try {
int waited = 0;
while ((waited < _splashTime)) {
sleep(100);
waited += 100;
}
} catch (InterruptedException e) {
} finally {
finish();
startActivity(new Intent(getApplicationContext(),
KitchenConvertor.class));
stop();
}
}
};
splashTread.start();
}
}