0
Наше приложение вылетает на некоторых устройствах после загрузки экрана. Он работает плавно на наших тестовых устройствах, поэтому мы не можем предоставить логарифм ошибок. Таким образом, единственная проблема заключается в том, что наше приложение вылетает на некоторых устройствах после вызова метода onCreate.Приложение вылетает, когда на некоторых устройствах вызывается действие onCreate().
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
WindowManager wm = (WindowManager) this.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
Point size = new Point();
display.getSize(size);
screenWidth = size.x;
screenHeight = size.y;
screenSizeAverage = (screenWidth + screenHeight)/2;
this.gameStatus = 5;
this.isEnemiesStarted = false;
this.score = 0;
this.playerPos = 0;
prefs = this.getSharedPreferences("myPrefsKey", Context.MODE_PRIVATE);
bestScore = prefs.getInt("key", 0);
gameView = new GameView(this.getApplicationContext(), this);
gameView.setOnTouchListener(new View.OnTouchListener(){
@Override
public boolean onTouch(View v, MotionEvent event) {
if(event.getAction() == android.view.MotionEvent.ACTION_DOWN) {
if(gameStatus == 1){
if(isEnemiesStarted == false){
isEnemiesStarted = true;
}
if(event.getX() < screenWidth/2 && event.getY() < screenHeight/2) {
if(playerPos != 1){
gameView.setPlayerPos(screenSizeAverage/8, screenSizeAverage/8);
playerPos = 1;
score++;
gameView.playSound(1);
}
}
else if(event.getX() > screenWidth/2 && event.getY() < screenHeight/2) {
if(playerPos != 2){
gameView.setPlayerPos(screenWidth - screenSizeAverage/8 - gameView.getPlayerWidth(), screenSizeAverage/8);
playerPos = 2;
score++;
gameView.playSound(1);
}
}
else if(event.getX() < screenWidth/2 && event.getY() > screenHeight/2) {
if(playerPos != 3){
gameView.setPlayerPos(screenSizeAverage/8, screenHeight - screenSizeAverage/8 - gameView.getPlayerWidth());
playerPos = 3;
score++;
gameView.playSound(1);
}
}
else if(event.getX() > screenWidth/2 && event.getY() > screenHeight/2) {
if(playerPos != 4){
gameView.setPlayerPos(screenWidth - screenSizeAverage/8 - gameView.getPlayerWidth(), screenHeight - screenSizeAverage/8 - gameView.getPlayerWidth());
playerPos = 4;
score++;
gameView.playSound(1);
}
}
}
}
else if (event.getAction() == android.view.MotionEvent.ACTION_UP) {
if(gameStatus == 3){
if(gameView.getLoadStatus() == 2){
gameView.closeGameOver();
gameView.playSound(2);
}
}
else if(gameStatus == 4){
if(gameView.getLoadStatus() == 1){
gameView.setBestScore(bestScore);
gameView.setLoadStatus(2);
} else if(gameView.getLoadStatus() == 2){
gameView.restartGame();
gameView.setLoadStatus(0);
gameView.playSound(2);
}
}
}
return true;
}
});
setContentView(gameView);
показать свой код для oncreate – raj
show crash log too –
, если у вас нет журналов ошибок, вставьте свой импорт. –