2015-04-07 47 views
-5

我已经从互联网上下载了一个安卓游戏程序,我试图运行它给方法和goto语句上的错误。安卓程序中的方法错误

我知道goto语句不支持java .. 我不知道他们是任何其他工具或语言。 我想知道他们使用哪种技术或工具或语言。

这是代码

package com.infraredpixel.drop.activities; 

import android.app.Activity; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.content.res.Resources; 
import android.graphics.RectF; 
import android.hardware.Sensor; 
import android.hardware.SensorManager; 
import android.opengl.GLSurfaceView; 
import android.os.*; 
import android.util.Log; 
import android.view.*; 

import com.infraredpixel.drop.*; 

import java.lang.reflect.Method; 
import java.util.List; 

// Referenced classes of package com.infraredpixel.drop.activities: 
//   ProfilingActivity, DebugActivity, MainMenuActivity 

public class OpenGLDropActivity extends Activity 
{ 

    public OpenGLDropActivity() 
    { 
    } 

    private int getDefaultRotation() 
    { 
     int i; 
     WindowManager windowmanager; 
     Method amethod[]; 
     String s; 
     int j; 
     i = 0; 
     windowmanager = (WindowManager)getSystemService("window"); 
     amethod = windowmanager.getDefaultDisplay().getClass().getDeclaredMethods(); 
     s = new String("getRotation"); 
     j = amethod.length; 
_L2: 
     Method method = null; 
     Display display; 
     if(i < j) 
     { 
label0: 
      { 
       Method method1 = amethod[i]; 
       Log.d("Methods", method1.getName()); 
       if(!method1.getName().equals(s)) 
        break label0; 
       method = method1; 
      } 
     } 
     display = windowmanager.getDefaultDisplay(); 
     if(method != null) 
     { 
      int k; 
      try 
      { 
       k = ((Integer)method.invoke(display, new Object[0])).intValue(); 
      } 
      catch(Exception exception) 
      { 
       return 0; 
      } 
      return k; 
     } else 
     { 
      return display.getOrientation(); 
     } 
     i++; 
     if(true){ goto _L2;} else{ goto _L1;} 
_L1: 
    } 

    protected void handleScore() 
    { 
     int i; 
     int j; 
     SharedPreferences sharedpreferences; 
     int k; 
     String s; 
     i = (int)(0.49F + (float)_StatusManager.dropDist()); 
     j = (int)(0.49F + (float)_StatusManager.getStars()); 
     sharedpreferences = getSharedPreferences("DropSettings", 0); 
     k = sharedpreferences.getInt("highScore", -1); 
     s = ""; 
     if(2 != _ControlMode) goto _L2; else goto _L1; 
_L1: 
     s = "tiltHighScore"; 
_L4: 
     int l = sharedpreferences.getInt(s, 0); 
     if(i + j > k && i + j > l) 
     { 
      _DeathDetector.setCurrentHighScore(i + j); 
      android.content.SharedPreferences.Editor editor = sharedpreferences.edit(); 
      editor.putInt("highScore", -1); 
      editor.putInt(s, i + j); 
      editor.commit(); 
     } 
     return; 
_L2: 
     if(1 == _ControlMode || _ControlMode == 0) 
      s = "touchHighScore"; 
     if(true) goto _L4; else goto _L3 
_L3: 
    } 

    public void onCreate(Bundle bundle) 
    { 
     SharedPreferences sharedpreferences; 
     super.onCreate(bundle); 
     sharedpreferences = getSharedPreferences("DropSettings", 0); 
     spriteRenderer = new GLRenderer(getApplicationContext()); 
     int i = sharedpreferences.getInt("fullScreenWidth", 480); 
     widthPixels = i; 
     int j = sharedpreferences.getInt("fullScreenHeight", 640); 
     RectF rectf = new RectF(0.0F, j, i, 0.0F); 
     boolean flag = sharedpreferences.getBoolean("useVibration", true); 
     boolean flag1 = sharedpreferences.getBoolean("godMode", false); 
     int k = sharedpreferences.getInt("ballType", 0); 
     int l = Math.max(sharedpreferences.getInt("highScore", 0), Math.max(sharedpreferences.getInt("tiltHighScore", 0), sharedpreferences.getInt("touchHighScore", 0))); 
     _ControlMode = sharedpreferences.getInt("controlMode", 2); 
     boolean flag2 = sharedpreferences.getBoolean("testModeDropSettings", false); 
     boolean flag3 = sharedpreferences.getBoolean("testModeMainSettings", false); 
     DropSettingsGroup adropsettingsgroup[]; 
     DropManager dropmanager; 
     Handler handler; 
     Runnable runnable; 
     boolean flag4; 
     boolean flag5; 
     boolean flag6; 
     Runnable runnable1; 
     int k1; 
     float f; 
     float f1; 
     float f2; 
     float f3; 
     float f4; 
     float f5; 
     if(flag2) 
     { 
      adropsettingsgroup = new DropSettingsGroup[1]; 
      adropsettingsgroup[0] = new DropSettingsGroup(); 
      adropsettingsgroup[0].scrollSpeed = -sharedpreferences.getInt("scrollSpeed", getResources().getInteger(0x7f010000)); 
      adropsettingsgroup[0].platformHeight = sharedpreferences.getInt("platformHeight", getResources().getInteger(0x7f050006)); 
      adropsettingsgroup[0].platformHoleWidth = 70; 
      adropsettingsgroup[0].yAccel = sharedpreferences.getInt("yAcceleration", getResources().getInteger(0x7f050001)); 
      adropsettingsgroup[0].yMaxSpeed = sharedpreferences.getInt("yMaxSpeed", getResources().getInteger(0x7f050002)); 
      adropsettingsgroup[0].yBounce = 0.7F; 
      adropsettingsgroup[0].xAccel = sharedpreferences.getInt("xAcceleration", getResources().getInteger(0x7f050003)); 
      adropsettingsgroup[0].xMaxSpeed = sharedpreferences.getInt("xMaxSpeed", getResources().getInteger(0x7f050004)); 
      adropsettingsgroup[0].xBounce = sharedpreferences.getFloat("xBounce", 0.5F); 
      adropsettingsgroup[0].duration = 20F; 
      adropsettingsgroup[0].transitionTiles = false; 
     } else 
     if(_ControlMode == 0 || _ControlMode == 1) 
      adropsettingsgroup = DropSettingsGroup.getTestSettingsA(); 
     else 
      adropsettingsgroup = DropSettingsGroup.getTestSettingsB(); 
     dropmanager = new DropManager(rectf, adropsettingsgroup); 
     _DropManager = dropmanager; 
     if(flag) 
      _DropManager.init(spriteRenderer, getBaseContext(), k, (float)widthPixels/320F, (Vibrator)getSystemService("vibrator")); 
     else 
      _DropManager.init(spriteRenderer, getBaseContext(), k, (float)widthPixels/320F, null); 
     _StatusManager = new StatusManager(); 
     _StatusManager.init(spriteRenderer, getBaseContext(), (float)widthPixels/320F, rectf); 
     _GameOverLayer = new GameOverLayer(); 
     _GameOverLayer.init(spriteRenderer, rectf); 
     handler = new Handler(); 
     runnable = new Runnable() { 

      public void run() 
      { 
       handleScore(); 
      } 

      final OpenGLDropActivity this$0; 


      { 
       this$0 = OpenGLDropActivity.this; 
       super(); 
      } 
     } 
; 
     _DeathDetector = new DeathDetector(rectf, _DropManager, _StatusManager, _GameOverLayer, handler, runnable); 
     _DeathDetector.setCurrentHighScore(l); 
     if(_ControlMode != 0) goto _L2; else goto _L1 
_L1: 
     ControlComponent.inAirMovementFactor = 0.3F; 
     ControlComponent.inAirMemoryMovementFactor = 0.08F; 
     DropManager.speed = 1.0F; 
_L4: 
     if(flag3) 
     { 
      k1 = sharedpreferences.getInt("movingAverageValue", 10); 
      f = sharedpreferences.getFloat("sensorCutoffX", 5F); 
      f1 = sharedpreferences.getFloat("inAirBreak", 0.3F); 
      f2 = sharedpreferences.getFloat("inAirMemory", 0.08F); 
      f3 = sharedpreferences.getFloat("gameSpeed", 1.0F); 
      f4 = sharedpreferences.getFloat("tiltAccelFactor", 1.0F); 
      f5 = sharedpreferences.getFloat("tiltAccelDiffFactor", 1.0F); 
      MySensorEventListener.SENSOR_CUTOFF_X = f; 
      MySensorEventListener.kFilteringFactor = 1.0F/(float)k1; 
      MySensorEventListener.accelFactor = f4; 
      MySensorEventListener.diffFactor = f5; 
      ControlComponent.inAirMovementFactor = 1.0F - f1; 
      ControlComponent.inAirMemoryMovementFactor = f2; 
      DropManager.speed = f3; 
     } 
     flag4 = sharedpreferences.getBoolean("canUseDrawTexture", true); 
     flag5 = sharedpreferences.getBoolean("canUseVBO", true); 
     GLSprite.shouldUseDrawTexture = flag4; 
     spriteRenderer.setVertMode(flag5); 
     ProfileRecorder.sSingleton.resetAll(); 
     _StatusManager.setBall(_DropManager.getBall()); 
     _DropManager.getCollisionComponent().setStatusManager(_StatusManager); 
     _ControlComponent = _DropManager.getControlComponent(); 
     spriteRenderer.endInit(); 
     simulationRuntime = new MainLoop(); 
     if(!flag1) 
      simulationRuntime.addGameObject(_DeathDetector); 
     simulationRuntime.addGameObject(_DropManager); 
     simulationRuntime.addGameObject(_StatusManager); 
     simulationRuntime.addGameObject(_GameOverLayer); 
     setContentView(0x7f030001); 
     flag6 = sharedpreferences.getBoolean("glSafeMode", false); 
     mGLSurfaceView = (GLSurfaceView)findViewById(0x7f08001f); 
     mGLSurfaceView.setRenderer(spriteRenderer); 
     mGLSurfaceView.setEvent(simulationRuntime); 
     mGLSurfaceView.setSafeMode(flag6); 
     runnable1 = new Runnable() { 

      public void run() 
      { 
       android.content.SharedPreferences.Editor editor = getSharedPreferences("DropSettings", 0).edit(); 
       editor.putString("testError", mGLSurfaceView.getLastError()); 
       editor.commit(); 
       Intent intent = new Intent(getApplicationContext(), com/infraredpixel/drop/activities/MainMenuActivity); 
       intent.putExtra("justCrashed", true); 
       startActivity(intent); 
       finish(); 
      } 

      final OpenGLDropActivity this$0; 


      { 
       this$0 = OpenGLDropActivity.this; 
       super(); 
      } 
     } 
; 
     mGLSurfaceView.setErrorMethod(runnable1); 
     sResetFlag = false; 
     Runtime.getRuntime().gc(); 
     return; 
_L2: 
     if(_ControlMode == 1) 
     { 
      ControlComponent.inAirMovementFactor = 0.3F; 
      ControlComponent.inAirMemoryMovementFactor = 0.08F; 
      DropManager.speed = 1.0F; 
     } else 
     if(_ControlMode == 2) 
     { 
      mWakeLock = ((PowerManager)getSystemService("power")).newWakeLock(10, "Drop"); 
      mWakeLock.acquire(); 
      SensorManager sensormanager = (SensorManager)getSystemService("sensor"); 
      List list = sensormanager.getSensorList(1); 
      int i1 = list.size(); 
      Sensor sensor = null; 
      if(i1 > 0) 
       sensor = (Sensor)list.get(0); 
      int j1 = getDefaultRotation(); 
      MySensorEventListener mysensoreventlistener = new MySensorEventListener(_DropManager, _DeathDetector, j1); 
      _MyMotionListener = mysensoreventlistener; 
      sensormanager.registerListener(_MyMotionListener, sensor, 1); 
      MySensorEventListener.SENSOR_CUTOFF_X = 8.3F + 4.5F * (1.0F - sharedpreferences.getFloat("tiltSensitivity", 0.3F)); 
      MySensorEventListener.kFilteringFactor = 1.0F; 
      ControlComponent.inAirMovementFactor = 1.0F; 
      ControlComponent.inAirMemoryMovementFactor = 0.0F; 
      DropManager.speed = 1.0F; 
      MySensorEventListener.accelFactor = 1.0F; 
      MySensorEventListener.diffFactor = 2.0F; 
     } 
     if(true) goto _L4; else goto _L3 
_L3: 
    } 

    public boolean onCreateOptionsMenu(Menu menu) 
    { 
     if(!TESTING) 
     { 
      return super.onCreateOptionsMenu(menu); 
     } else 
     { 
      menu.add(0, 1, 0, "profile"); 
      menu.add(0, 2, 0, "debug/test"); 
      menu.add(0, 3, 0, "main menu"); 
      menu.add(0, 4, 0, "pause/resume"); 
      return true; 
     } 
    } 

    protected void onDestroy() 
    { 
     if(mWakeLock != null && mWakeLock.isHeld()) 
     { 
      mWakeLock.release(); 
      mWakeLock = null; 
     } 
     SensorManager sensormanager = (SensorManager)getSystemService("sensor"); 
     if(_MyMotionListener != null) 
     { 
      sensormanager.unregisterListener(_MyMotionListener); 
      _MyMotionListener = null; 
     } 
     mGLSurfaceView = null; 
     _DropManager = null; 
     _StatusManager = null; 
     _DeathDetector = null; 
     _GameOverLayer = null; 
     simulationRuntime = null; 
     _ControlComponent = null; 
     super.onDestroy(); 
    } 

    public boolean onKeyDown(int i, KeyEvent keyevent) 
    { 
     if(_ControlMode == 1) 
     { 
      if(i == 82 || i == 21) 
      { 
       _ControlComponent.autoBreak = false; 
       _ControlComponent.moveLeft(); 
       _LeftPressed = true; 
       return true; 
      } 
      if(i == 84 || i == 22) 
      { 
       _ControlComponent.autoBreak = false; 
       _ControlComponent.moveRight(); 
       _RightPressed = true; 
       return true; 
      } else 
      { 
       return super.onKeyDown(i, keyevent); 
      } 
     } else 
     { 
      return super.onKeyDown(i, keyevent); 
     } 
    } 

    public boolean onKeyUp(int i, KeyEvent keyevent) 
    { 
     if(_ControlMode != 1) 
      break MISSING_BLOCK_LABEL_102; 
     if(i != 82 && i != 21) goto _L2; else goto _L1 
_L1: 
     boolean flag; 
     _LeftPressed = false; 
     flag = true; 
_L5: 
     if(!_LeftPressed && !_RightPressed) 
      _ControlComponent.stopMovement(); 
     if(!_DeathDetector.getDeathOccured()) 
      _DropManager.start(); 
     if(flag) 
      return true; 
     else 
      return super.onKeyUp(i, keyevent); 
_L2: 
     if(i == 84) goto _L4; else goto _L3 
_L3: 
     flag = false; 
     if(i != 22) goto _L5; else goto _L4 
_L4: 
     _RightPressed = false; 
     flag = true; 
      goto _L5 
     return super.onKeyUp(i, keyevent); 
    } 

    public boolean onOptionsItemSelected(MenuItem menuitem) 
    { 
     switch(menuitem.getItemId()) 
     { 
     default: 
      return false; 

     case 1: // '\001' 
      finish(); 
      startActivity(new Intent(mGLSurfaceView.getContext(), com/infraredpixel/drop/activities/ProfilingActivity)); 
      return true; 

     case 2: // '\002' 
      finish(); 
      startActivity(new Intent(mGLSurfaceView.getContext(), com/infraredpixel/drop/activities/DebugActivity)); 
      return true; 

     case 3: // '\003' 
      finish(); 
      startActivity(new Intent(mGLSurfaceView.getContext(), com/infraredpixel/drop/activities/MainMenuActivity)); 
      return true; 

     case 4: // '\004' 
      break; 
     } 
     if(simulationRuntime.isPaused()) 
     { 
      simulationRuntime.unPause(); 
      mGLSurfaceView.onResume(); 
     } else 
     { 
      simulationRuntime.pause(); 
      mGLSurfaceView.onPause(); 
     } 
     return true; 
    } 

    protected void onPause() 
    { 
     mGLSurfaceView.onPause(); 
     if(mWakeLock != null && mWakeLock.isHeld()) 
      mWakeLock.release(); 
     if(_ControlMode == 2) 
     { 
      SensorManager sensormanager = (SensorManager)getSystemService("sensor"); 
      if(_MyMotionListener != null) 
       sensormanager.unregisterListener(_MyMotionListener); 
     } 
     super.onPause(); 
    } 

    protected void onResume() 
    { 
     mGLSurfaceView.onResume(); 
     if(sResetFlag) 
     { 
      handleScore(); 
      _DropManager.reset(); 
      sResetFlag = false; 
     } 
     if(mWakeLock != null && !mWakeLock.isHeld()) 
      mWakeLock.acquire(); 
     if(_ControlMode == 2) 
     { 
      SensorManager sensormanager = (SensorManager)getSystemService("sensor"); 
      List list = sensormanager.getSensorList(1); 
      int i = list.size(); 
      Sensor sensor = null; 
      if(i > 0) 
       sensor = (Sensor)list.get(0); 
      sensormanager.registerListener(_MyMotionListener, sensor, 1); 
     } 
     super.onResume(); 
    } 

    protected void onStart() 
    { 
     super.onStart(); 
    } 

    public boolean onTouchEvent(MotionEvent motionevent) 
    { 
     if(!_GameOverLayer.isEnabled()) goto _L2; else goto _L1 
_L1: 
     boolean flag; 
     int k = motionevent.getAction(); 
     flag = false; 
     if(k == 0) 
     { 
      _GameOverLayer.doNextStep(); 
      flag = true; 
     } 
_L4: 
     int i; 
     ControlComponent controlcomponent; 
     int j; 
     float f; 
     try 
     { 
      Thread.sleep(20L); 
     } 
     catch(InterruptedException interruptedexception) 
     { 
      interruptedexception.printStackTrace(); 
      return flag; 
     } 
     return flag; 
_L2: 
     i = _ControlMode; 
     flag = false; 
     if(i == 0) 
     { 
      controlcomponent = _ControlComponent; 
      flag = false; 
      if(controlcomponent != null) 
      { 
       j = motionevent.getAction(); 
       f = motionevent.getX(); 
       if(j == 2) 
       { 
        if((float)(widthPixels/2) < f) 
         _ControlComponent.moveRight(); 
        else 
         _ControlComponent.moveLeft(); 
        flag = true; 
       } else 
       if(j == 0) 
       { 
        if((float)(widthPixels/2) < f) 
         _ControlComponent.moveRight(); 
        else 
         _ControlComponent.moveLeft(); 
        if(!_DeathDetector.getDeathOccured()) 
         _DropManager.start(); 
        flag = true; 
       } else 
       { 
        flag = false; 
        if(j == 1) 
        { 
         _ControlComponent.stopMovement(); 
         flag = true; 
        } 
       } 
      } 
     } 
     if(true) goto _L4; else goto _L3 
_L3: 
    } 

    public boolean onTrackballEvent(MotionEvent motionevent) 
    { 
     if(_ControlMode == 1) 
     { 
      if(!_DeathDetector.getDeathOccured()) 
       _DropManager.start(); 
      float f = motionevent.getX(); 
      _ControlComponent.autoBreak = true; 
      _ControlComponent.moveSideways(3.5F * f); 
      return true; 
     } else 
     { 
      return super.onTrackballEvent(motionevent); 
     } 
    } 

    public static final int CONTROL_MODE_KEYS = 1; 
    public static final int CONTROL_MODE_TILT = 2; 
    public static final int CONTROL_MODE_TOUCH = 0; 
    public static final String PREFS_NAME = "DropSettings"; 
    private static boolean TESTING = false; 
    protected static boolean sResetFlag; 
    private ControlComponent _ControlComponent; 
    private int _ControlMode; 
    DeathDetector _DeathDetector; 
    DropManager _DropManager; 
    private GameOverLayer _GameOverLayer; 
    private boolean _LeftPressed; 
    MySensorEventListener _MyMotionListener; 
    private boolean _RightPressed; 
    StatusManager _StatusManager; 
    private GLSurfaceView mGLSurfaceView; 
    protected android.os.PowerManager.WakeLock mWakeLock; 
    MainLoop simulationRuntime; 
    private GLRenderer spriteRenderer; 
    private int widthPixels; 


} 

程序给出许多错误..

+2

您正在使用低效方法。你不应该从互联网上下载复杂的例子。然后转到stackoverflow向你解释它们。相反:从基本教程开始,一步一步地跟着他们。这将允许你在一段时间内做更复杂的事情。不要指望周围的任何人愿意花时间为你做这件事。你的问题太广泛了,你将主要收到降价;即使有答案:他们可能超出了你当前的技能。所以,扔掉垃圾,并从**你**可以理解的例子开始。 – GhostCat

回答

2

你在这里的不是真正的Java,你不应该使用它作为一个例子来学习Java编程从。

那么究竟是什么东西呢?

它看起来像我有人试图反编译Android应用程序,反编译器无法将一些代码转换回真正的Java。相反,反编译器已插入goto“语句”以试图将代码的含义传达给(人类)阅读器。

2

这显然是反编译的输出。虽然这是获得对程序特定见解的好方法,但它并不像Jägermeister所说的那样是初学者级别的材料,因为jads缺乏标准Java源代码的清晰度和简洁性。

例如,goto keyword is not supported on the source code side of the JDK,但它是以跳转指令的形式在字节码内部使用的。可以通过surjective的方式将中断,继续,循环,ifs等变成跳转。反编译器无法恢复原始构造,只能将gotos和标签放入jad中。程序员需要恢复合理的,可编译的流程结构。

这就是说,你的问题的综合答案是:它是Java,而是字节码的东西的图像,而不是严格的源代码恢复,并且需要手动修改再次编译。