我写了这个小代码来检查quickblox。这只是注册用户按下注册按钮。但是当我运行这段代码时,我在logcat中遇到NoClassDefFound的错误 用于QBSettings,因此应用程序崩溃。我已经将quickblox提供的jar文件添加为外部jar。所以,我无法弄清楚为什么会发生这种情况?需要帮助!
import com.quickblox.core.QBCallbackImpl;
import com.quickblox.core.QBSettings;
import com.quickblox.core.result.Result;
import com.quickblox.module.users.QBUsers;
import com.quickblox.module.users.model.QBUser;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
Button login,register;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
QBSettings.getInstance().fastConfigInit(<app-id>, <authkey>, <authsecret>); // error here
login = (Button) findViewById(R.id.login);
register = (Button) findViewById(R.id.register);
register.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
final QBUser user = new QBUser("something", "somepassword");
// register user
QBUsers.signUp(user, new QBCallbackImpl() {
@Override
public void onComplete(Result result) {
// result comes here
// check if result success
if (result.isSuccess()) {
// do stuff you need
Toast.makeText(getApplicationContext(), "Registered", Toast.LENGTH_SHORT).show();
}
}
});
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
答案 0 :(得分:0)
问题不在您的代码中,而是在您的项目配置中。 我想您正在使用Eclipse IDE,而您忘记检查quickblox-android.jar文件是否包含在apk文件中。请查看this tutorial中的第5步。