gpt4 book ai didi

设置断点时 Android Activity 崩溃

转载 作者:行者123 更新时间:2023-12-05 07:54:50 24 4
gpt4 key购买 nike

我在开发 Android 应用程序时遇到了一个奇怪的问题。我正在尝试使用我的手机(Oneplus One)、Android Studio 和 ADB 调试我的应用程序。一切正常,除了当我启动一个已经在 Android Studio 中设置了断点的 Activity 时,它崩溃了,没有日志输出。当 Activity 是启动 Activity 和我以 Intent 开始一个 Activity 时,都会发生这种情况。

正如您所想象的,这非常令人恼火,因为我的 onCreate() 方法中有一个我想闯入的错误。

我已经尝试将 Debug.waitForDebugger() 行添加到断点上方的代码位,但这没有帮助。

我没有为这个问题添加任何代码,因为这个错误与代码无关。它发生在多个项目和 Activity 中。我没有另一部 Android 手机来测试它,所以无法检查。有没有其他人遇到过这种情况和/或找到了解决办法?

提前致谢。

编辑:添加了代码示例。当没有设置断点时,这段代码不会崩溃,断点也不需要在这段代码中才会发生崩溃。这只是我正在尝试调试的代码,如果不了解我的服务器后端,就无法修复其行为,因此我不会就此寻求帮助。

protected void onCreate(Bundle savedInstanceState) {
//Create activity
getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//Check for play services
if (!checkPlayServices()){
//Exit and notify user that play services are required
Toast.makeText(this, "Google Play Services must be installed for Insty to work", Toast.LENGTH_LONG).show();
System.exit(1);
}

//Get token. If null, push to login screen
SharedPreferences sp = getBaseContext().getSharedPreferences(NetService.SP_APP, Context.MODE_PRIVATE);
if (!sp.contains(NetService.SP_TOKEN)){
//Token doesn't exist - push to login screen
startActivity(new Intent(MainActivity.this, LoginActivity.class));
MainActivity.this.finish();
return;
}

//Setup action bar
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setHomeButtonEnabled(true);

//Populate navigation drawer
mDrawerLayout = (DrawerLayout)findViewById(R.id.drawer_layout);
mDrawerList = (ListView)findViewById(R.id.left_drawer);
String[] menuItems = getResources().getStringArray(R.array.menu_items);
mDrawerList.setAdapter(new ArrayAdapter<>(this, R.layout.drawer_list_item, menuItems));
//Set an on click listener
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
//Add to action bar
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.string.open_drawer, R.string.close_drawer){
@Override
public void onDrawerClosed(View view){
invalidateOptionsMenu();
}

@Override
public void onDrawerOpened(View view){
invalidateOptionsMenu();
}
};

mDrawerLayout.post(new Runnable() {
@Override
public void run() {
mDrawerToggle.syncState();
}
});

//Start a token verification
ResultReceiver receiver = new ResultReceiver(new Handler()){
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
VerifyResult result = VerifyResult.values()[resultData.getInt(NetService.RESULT_VERIFY)];
switch (result){
case VALID:
//Do nothing
break;

case INVALID:
//Push back to login screen
startActivity(new Intent(MainActivity.this, LoginActivity.class));
MainActivity.this.finish();
break;

case BAD_NETWORK:
//Toast to let user know network is down
Toast.makeText(MainActivity.this, R.string.bad_network, Toast.LENGTH_LONG).show();
break;

case ERROR:
//Toast to show error
Toast.makeText(MainActivity.this, R.string.generic_error, Toast.LENGTH_LONG).show();
break;
}
}
};
//Start verify
NetService.startActionVerify(this, receiver, sp.getString(NetService.SP_TOKEN, ""));

//Open on chats fragment
FragmentManager fragMgr = getFragmentManager();
fragMgr.beginTransaction().replace(R.id.content_frame, new ChatsFragment()).commit();

}

最佳答案

Android Studio 的最新版本 (1.1-1.2) 有一些调试错误,可能是新的内联调试功能的原因。 There是一个issue主题,里面有一个解决方案。试一试,它解决了我的调试问题。

关于设置断点时 Android Activity 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30991539/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com