Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.lang.NoClassDefFoundError找不到类_Java_Android_Eclipse - Fatal编程技术网

java.lang.NoClassDefFoundError找不到类

java.lang.NoClassDefFoundError找不到类,java,android,eclipse,Java,Android,Eclipse,我在Eclipse中有以下错误 java.lang.RuntimeException:无法实例化 我更改了库解决方案/manifest/…但无法修复,请帮助我。我从格拉德尔进口的 以下是完整的日志: 06-17 18:39:38.594:D/jdwp(6695):sendBufferedRequest:len=0x3D 06-17 18:39:38.597:W/资产(6695):资产管理器-->添加默认资产CIP路径 不存在!06-17 18:39:38.671:W/dalvikvm(669

我在Eclipse中有以下错误

java.lang.RuntimeException:无法实例化

我更改了库
解决方案/manifest/…
但无法修复,请帮助我。我从格拉德尔进口的

以下是完整的日志:

06-17 18:39:38.594:D/jdwp(6695):sendBufferedRequest:len=0x3D 06-17 18:39:38.597:W/资产(6695):资产管理器-->添加默认资产CIP路径 不存在!06-17 18:39:38.671:W/dalvikvm(6695):无法解决 超类 Lcom/joker/Takhen/backgammon/gservice/BasegService应用程序;(1332) 06-17 18:39:38.671:W/dalvikvm(6695):班级链接 'Lcom/joker/Takhen/backgammon/gservice/BaseGServiceApplication;' 失败06-17 18:39:38.672:W/dalvikvm(6695):无法解决 超类 Lcom/joker/Takhen/backgammon/gservice/GServiceApplication;(5208) 06-17 18:39:38.673:W/dalvikvm(6695):班级链接 'Lcom/joker/Takhen/backgammon/gservice/GServiceApplication;'失败 06-17 18:39:38.673:W/dalvikvm(6695):无法解析的超类 Lcom/joker/Takhen/MainActivity;(5211) 06-17 18:39:38.675: W/dalvikvm(6695):Lcom/joker/Takhen/MainActivity类链接 失败06-17 18:39:38.677:D/AndroidRuntime(6695):关闭虚拟机 06-17 18:39:38.678:W/dalvikvm(6695):threadid=1:线程以 未捕获异常(组=0x40d719c0)XWJm 06-17 18:39:38.678: I/dalvikvm(6695):java.lang.RuntimeException:无法实例化 活动 ComponentInfo{com.joker.takhen/com.joker.takhen.MainActivity}: java.lang.ClassNotFoundException:未找到类 路径:DexPathList[[zip文件]上的“com.joker.takhen.MainActivity” “/data/app/com.joker.takhen-2.apk”],nativeLibraryDirectories=[/data/app-lib/com.joker.takhen-2, /供应商/lib、/data/cust/lib、/system/lib、/data/datalib]]06-17 18:39:38.678:I/dalvikvm(6695):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2290) 06-17 18:39:38.678:I/dalvikvm(6695):在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2416) 06-17 18:39:38.678:I/dalvikvm(6695):在 android.app.ActivityThread.access$600(ActivityThread.java:166)06-17 18:39:38.678:I/dalvikvm(6695):在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1379) 06-17 18:39:38.678:I/dalvikvm(6695):在 android.os.Handler.dispatchMessage(Handler.java:107)06-17 18:39:38.678:I/dalvikvm(6695):在 android.os.Looper.loop(Looper.java:194)06-17 18:39:38.678: I/dalvikvm(6695):在 android.app.ActivityThread.main(ActivityThread.java:5455)06-17 18:39:38.678:I/dalvikvm(6695):在 java.lang.reflect.Method.Invokenactive(本机方法)06-17 18:39:38.678:I/dalvikvm(6695):在 java.lang.reflect.Method.invoke(Method.java:525)06-17 18:39:38.678: I/dalvikvm(6695):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:966) 06-17 18:39:38.678:I/dalvikvm(6695):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733)06-17 18:39:38.678:I/dalvikvm(6695):在 dalvik.system.NativeStart.main(本地方法)06-17 18:39:38.678: I/dalvikvm(6695):由以下原因引起:06-17 18:39:38.678:I/dalvikvm(6695): java.lang.ClassNotFoundException:未找到类 路径:DexPathList[[zip文件]上的“com.joker.takhen.MainActivity” “/data/app/com.joker.takhen-2.apk”],nativeLibraryDirectories=[/data/app-lib/com.joker.takhen-2, /供应商/lib、/data/cust/lib、/system/lib、/data/datalib]]06-17 18:39:38.678:I/dalvikvm(6695):在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53) 06-17 18:39:38.679:I/dalvikvm(6695):在 loadClass(ClassLoader.java:501)06-17 18:39:38.679:I/dalvikvm(6695):在 loadClass(ClassLoader.java:461)06-17 18:39:38.679:I/dalvikvm(6695):在 android.app.Instrumentation.newActivity(Instrumentation.java:1054) 06-17 18:39:38.679:I/dalvikvm(6695):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2281) 06-17 18:39:38.679:I/dalvikvm(6695):在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2416) 06-17 18:39:38.679:I/dalvikvm(6695):在 android.app.ActivityThread.access$600(ActivityThread.java:166)06-17 18:39:38.679:I/dalvikvm(6695):在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1379) 06-17 18:39:38.679:I/dalvikvm(6695):在 android.os.Handler.dispatchMessage(Handler.java:107)06-17 18:39:38.679:I/dalvikvm(6695):在 android.os.Looper.loop(Looper.java:194)06-17 18:39:38.679: I/dalvikvm(6695):在 android.app.ActivityThread.main(ActivityThread.java:5455)06-17 18:39:38.679:I/dalvikvm(6695):在 java.lang.reflect.Method.Invokenactive(本机方法)06-17 18:39:38.679:I/dalvikvm(6695):在 java.lang.reflect.Method.invoke(Method.java:525)06-17 18:39:38.679: I/dalvikvm(6695):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:966) 06-17 18:39:38.679:I/dalvikvm(6695):在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:733)06-17 18:39:38.679:I/dalvikvm(6695):在 dalvik.system.NativeStart.main(本机方法)06-17 18:39:38.682: E/AndroidRuntime(6695):致命异常:main 06-17 18:39:38.682: E/AndroidRuntime(6695):java.lang.RuntimeException:无法 实例化活动 ComponentInfo{com.joker.takhen/com.joker.takhen.MainActivity}: java.lang.ClassNotFoundException:未找到类 路径:DexPathList[[zip文件]上的“com.joker.takhen.MainActivity” “/data/app/com.joker.takhen-2.apk”],nativeLibraryDirectories=[/data/app-lib/com.joker.takhen-2, /供应商/lib、/data/cust/lib、/system/lib、/data/datalib]]06-17 18:39:38.682:E/AndroidRuntime(6695):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2290) 06-17 18:39:38.682:E/AndroidRuntime(6695):在 android.app.ActivityThread.handleL
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.joker.takhten"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="9"
        android:targetSdkVersion="21" />
 <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="com.android.vending.BILLING" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.joker.takhten.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>
        <activity
            android:name="com.joker.takhten.PurchaseActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
            android:label="@string/app_name"
            android:screenOrientation="landscape">
        </activity>

        <activity
            android:name="com.smartclip.helpers.SmartClipActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
            android:label="@string/app_name"
            android:screenOrientation="landscape">
        </activity>

        <activity 
            android:name="com.google.android.gms.ads.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
            android:screenOrientation="portrait"/>
        <meta-data android:name="com.google.android.gms.appstate.APP_ID"
            android:value="@string/APP_ID" />
        <meta-data android:name="com.google.android.gms.games.APP_ID"
            android:value="@string/APP_ID" />
        <meta-data android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version"/>
    </application>

</manifest>
package com.joker.takhten;

import com.joker.takhten.backgammon.GnuBackgammon;
import com.joker.takhten.backgammon.NativeFunctions;
import com.joker.takhten.backgammon.fsm.BaseFSM.Events;
import com.joker.takhten.backgammon.fsm.MenuFSM;
import com.joker.takhten.backgammon.gservice.GServiceApplication;
import com.joker.takhten.backgammon.gservice.GServiceClient;
import com.joker.takhten.backgammon.helpers.ADSHelpers;
import com.joker.takhten.backgammon.helpers.AccelerometerHelpers;
import com.joker.takhten.backgammon.helpers.AndroidHelpers;
import com.joker.takhten.backgammon.layers.GameScreen;
import com.joker.takhten.backgammon.layers.SplashScreen;
import com.joker.takhten.backgammon.logic.AICalls;
import com.joker.takhten.backgammon.logic.MatchState;
import com.joker.takhten.backgammon.stats.StatManager;
import com.joker.takhten.backgammon.ui.UIDialog;
import com.joker.takhten.backgammon.utils.AppDataManager;
import com.joker.takhten.backgammon.utils.ELORatingManager;
import com.joker.takhten.backgammon.utils.MatchRecorder;

import android.annotation.SuppressLint;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.os.Bundle;
import android.text.Editable;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.Window;
import android.view.WindowManager;
import android.view.inputmethod.InputMethodManager;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
import android.widget.Toast;

import com.badlogic.gdx.Gdx;
import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration;
import com.google.android.gms.common.images.ImageManager;
import com.google.android.gms.games.leaderboard.LeaderboardVariant;
import com.google.android.gms.games.leaderboard.Leaderboards.SubmitScoreResult;
import com.google.android.gms.games.leaderboard.ScoreSubmissionData.Result;
import com.smartclip.helpers.SmartClipHelper;

@SuppressLint("InflateParams")
public class MainActivity extends GServiceApplication implements NativeFunctions, OnEditorActionListener {

  private View chatBox;
  private View gameView;

  private AndroidHelpers androidHelpers;
  private ADSHelpers adsHelpers;
  private SmartClipHelper scHelper;
  private AccelerometerHelpers accelerometerHelpers;

  private ImageManager imgMgr;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);

    AndroidApplicationConfiguration cfg = new AndroidApplicationConfiguration();
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
    RelativeLayout layout = new RelativeLayout(this);
    gameView = initializeForView(new GnuBackgammon(this), cfg);

    super.onCreate(savedInstanceState);

    // HELPERS INITIALIZATION
    PrivateDataManager.createBillingData(this);
    androidHelpers = new AndroidHelpers(this);
    accelerometerHelpers = new AccelerometerHelpers(this);
    adsHelpers = new ADSHelpers(this, androidHelpers.isTablet());

    RelativeLayout.LayoutParams adParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    adParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
    adParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);
    layout.addView(gameView);

    View adv = adsHelpers.getAdView();
    if (adv != null)
      layout.addView(adv, adParams);

    LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    chatBox = inflater.inflate(R.layout.chat_box, null);
    RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    chatBox.setVisibility(View.GONE);
    layout.addView(chatBox, params);

    scHelper = new SmartClipHelper(this);

    setContentView(layout);

    /** CHATBOX DIMS **/
    int width = androidHelpers.getScreenWidth();
    View s1 = findViewById(R.id.space1);
    View s2 = findViewById(R.id.space2);
    View s3 = findViewById(R.id.chat_content);
    ViewGroup.LayoutParams pars = s1.getLayoutParams();
    pars.width = Math.round(width * 0.15f) + 7;
    s1.setLayoutParams(pars);
    pars = s2.getLayoutParams();
    pars.width = Math.round(width * 0.15f) + 7;
    s2.setLayoutParams(pars);
    pars = s3.getLayoutParams();
    GnuBackgammon.chatHeight = pars.height;
    pars.width = Math.round(width * 0.7f) - 14;
    s3.setLayoutParams(pars);
    EditText target = (EditText)findViewById(R.id.message);
    target.setOnEditorActionListener(this);
    /** CHATBOX DIMS **/

    imgMgr = ImageManager.create(getApplicationContext());
  }

  @Override
  public void showAds(final boolean show) {
    adsHelpers.showAds(show);
  }

  @Override
  public void openURL(String... urls) {
    Gdx.graphics.setContinuousRendering(true);
    Gdx.graphics.requestRendering();
    androidHelpers.openURL(urls);
  }

  @Override
  public String getDataDir() {
    return androidHelpers.getDataDir();
  }

  @Override
  public void shareMatch(MatchRecorder rec) {
    Gdx.graphics.setContinuousRendering(true);
    Gdx.graphics.requestRendering();
    androidHelpers.sendFile(rec.saveSGF().getBytes());
  }

  @Override
  public void injectBGInstance() {}

  @SuppressLint("NewApi")
  @Override
  public void fibsSignin() {
    final AlertDialog.Builder alert = new AlertDialog.Builder(this);
    final LayoutInflater inflater = this.getLayoutInflater();

    runOnUiThread(new Runnable() {
      @Override
      public void run() {
        final View myView = inflater.inflate(R.layout.dialog_signin, null);
        alert.setView(myView).setTitle("Login to server...").setCancelable(false).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
            GnuBackgammon.fsm.processEvent(Events.FIBS_CANCEL, null);
          }
        });

        if (!GnuBackgammon.Instance.server.equals("fibs.com"))
          alert.setNeutralButton("Create Account", new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int whichButton) {
              fibsRegistration();
            }
          });

        alert.setPositiveButton("Login", null);

        final AlertDialog d = alert.create();

        d.setOnDismissListener(new DialogInterface.OnDismissListener() {
          @Override
          public void onDismiss(DialogInterface dialog) {
            enterImmersiveMode();
          }
        });

        d.setOnShowListener(new DialogInterface.OnShowListener() {
          @Override
          public void onShow(DialogInterface arg0) {
            String usr = "";
            String pwd = "";
            final int min_chars;
            if (GnuBackgammon.Instance.server.equals("fibs.com")) {
              usr = GnuBackgammon.Instance.fibsPrefs.getString("fusername");
              pwd = GnuBackgammon.Instance.fibsPrefs.getString("fpassword");
              min_chars = 0;
            } else {
              usr = GnuBackgammon.Instance.fibsPrefs.getString("tusername");
              pwd = GnuBackgammon.Instance.fibsPrefs.getString("tpassword");
              min_chars = 3;
            }
            ((EditText)myView.findViewById(R.id.username)).setText(usr);
            ((EditText)myView.findViewById(R.id.password)).setText(pwd);
            Button b = d.getButton(AlertDialog.BUTTON_POSITIVE);
            b.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                String username = ((EditText)myView.findViewById(R.id.username)).getText().toString();
                String password = ((EditText)myView.findViewById(R.id.password)).getText().toString();
                if (username.length() > 3 && password.length() > 3) {
                  GnuBackgammon.Instance.commandDispatcher.sendLogin(username, password);
                  d.dismiss();
                } else {
                  Context context = getApplicationContext();
                  CharSequence text = "";
                  if (username.length() <= min_chars)
                    text = "Username must be at least " + (min_chars + 1) + "-chars length";
                  else if (password.length() <= 3)
                    text = "Password must be at least 4-chars length";
                  else
                    text = "Generic error, please retype username and password";

                  int duration = Toast.LENGTH_SHORT;
                  Toast toast = Toast.makeText(context, text, duration);
                  toast.setGravity(Gravity.TOP, 0, 0);
                  toast.show();
                }
              }
            });
          }
        });

        if (android.os.Build.VERSION.SDK_INT >= 19) {
          d.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
          d.show();
          d.getWindow().getDecorView().setSystemUiVisibility(MainActivity.this.getWindow().getDecorView().getSystemUiVisibility());
          d.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
        } else {
          d.show();
        }
      }
    });
  }

  @SuppressLint("NewApi")
  @Override
  public void fibsRegistration() {

    final AlertDialog.Builder alert = new AlertDialog.Builder(this);
    final LayoutInflater inflater = this.getLayoutInflater();
    final AlertDialog.Builder popupBuilder = new AlertDialog.Builder(this);
    final TextView myMsg = new TextView(this);

    runOnUiThread(new Runnable() {
      @Override
      public void run() {
        final View myView = inflater.inflate(R.layout.dialog_register, null);
        alert.setView(myView).setCancelable(false).setTitle("Create new account...").setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
            GnuBackgammon.fsm.processEvent(Events.FIBS_CANCEL, null);
          }
        }).setPositiveButton("Create", null);

        final AlertDialog d = alert.create();
        d.setOnDismissListener(new DialogInterface.OnDismissListener() {
          @Override
          public void onDismiss(DialogInterface dialog) {
            enterImmersiveMode();
          }
        });
        d.setOnShowListener(new DialogInterface.OnShowListener() {
          @Override
          public void onShow(DialogInterface arg0) {
            Button b = d.getButton(AlertDialog.BUTTON_POSITIVE);
            b.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                String username = ((EditText)myView.findViewById(R.id.username)).getText().toString();
                String password = ((EditText)myView.findViewById(R.id.password)).getText().toString();
                String password2 = ((EditText)myView.findViewById(R.id.password2)).getText().toString();
                if (username.length() > 3 && password.length() > 3 && password2.length() > 3 && password.equals(password2)) {
                  GnuBackgammon.Instance.FibsUsername = username;
                  GnuBackgammon.Instance.FibsPassword = password;
                  GnuBackgammon.Instance.commandDispatcher.createAccount();
                  d.dismiss();
                } else {
                  Context context = getApplicationContext();
                  CharSequence text = "";
                  if (username.length() <= 3)
                    text = "Username must be at least 4-chars length";
                  else if (password.length() <= 3)
                    text = "Password must be at least 4-chars length";
                  else if (!password.equals(password2))
                    text = "Provided passwords don't match";
                  else
                    text = "Generic error, please retype username and password";

                  int duration = Toast.LENGTH_SHORT;
                  Toast toast = Toast.makeText(context, text, duration);
                  toast.setGravity(Gravity.TOP, 0, 0);
                  toast.show();
                }
              }
            });
          }
        });

        myMsg.setText("\nYou are creating new account...\n\n" + "Available chars for username are: A-Z,a-z,_\n" + "Available chars for password are: A-Z,a-z,0-9,_\n\n"
            + "Note: username and password must be\n minimum 4-chars length\n");
        myMsg.setGravity(Gravity.CENTER_HORIZONTAL);
        popupBuilder.setCancelable(false).setView(myMsg).setTitle("Info").setPositiveButton("OK", new DialogInterface.OnClickListener() {
          @Override
          public void onClick(DialogInterface dialog, int which) {
            if (android.os.Build.VERSION.SDK_INT >= 19) {
              d.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
              d.show();
              d.getWindow().getDecorView().setSystemUiVisibility(MainActivity.this.getWindow().getDecorView().getSystemUiVisibility());
              d.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
            } else {
              d.show();
            }
          }
        });
        AlertDialog popup = popupBuilder.create();
        if (android.os.Build.VERSION.SDK_INT >= 19) {
          popup.getWindow().setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
          popup.show();
          popup.getWindow().getDecorView().setSystemUiVisibility(MainActivity.this.getWindow().getDecorView().getSystemUiVisibility());
          popup.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE);
        } else {
          d.show();
        }
      }
    });
  }

  @Override
  public boolean isNetworkUp() {
    return androidHelpers.isNetworkUp();
  }

  @Override
  public void showChatBox() {
    runOnUiThread(new Runnable() {
      @Override
      public void run() {
        if (chatBox.getVisibility() != View.VISIBLE)
          chatBox.setVisibility(View.VISIBLE);
      }
    });
  }

  @Override
  public void hideChatBox() {
    runOnUiThread(new Runnable() {
      @Override
      public void run() {
        adjustFocus();
        enterImmersiveMode();
        if (chatBox.getVisibility() != View.GONE) {
          EditText chat = (EditText)findViewById(R.id.message);
          InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
          imm.hideSoftInputFromWindow(chat.getWindowToken(), 0);
          chatBox.setVisibility(View.GONE);
        }
      }
    });
  }

  public void clearMessage(View v) {
    EditText chat = (EditText)findViewById(R.id.message);
    chat.setText("");
  }

  public void sendMessage(View v) {
    EditText chat = (EditText)findViewById(R.id.message);


  @Override
  public boolean onEditorAction(TextView arg0, int arg1, KeyEvent arg2) {
    sendMessage(null);
    return false;
  }
06-19 17:47:35.197: E/AndroidRuntime(3084): FATAL EXCEPTION: main
06-19 17:47:35.197: E/AndroidRuntime(3084): java.lang.NoClassDefFoundError: com.joker.takhten.MainActivity
06-19 17:47:35.197: E/AndroidRuntime(3084):     at com.joker.takhten.Main$1.onTouch(Main.java:24)
06-19 17:47:35.197: E/AndroidRuntime(3084):     at android.view.View.dispatchTouchEvent(View.java:7273)
06-19 17:47:35.197: E/AndroidRuntime(3084):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2246)
06-19 17:47:35.197: E/AndroidRuntime(3084):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1907)
06-19 17:47:35.197: E/AndroidRuntime(3084):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2246)
06-19 17:47:35.197: E/AndroidRuntime(3084):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:1907)
06-19 17:47:35.197: E/AndroidRuntime(3084):     at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2246)
 com.joker.takhten.backgammon.gservice.GServiceApplication