1、Error:Failed to resolve: com.android.support:appcompat-v7:27.0.0,sdkversion为27时报此错误
解决:build.gradle中android标签中加上
repositories { mavenLocal() mavenCentral() maven { // <-- Add this url 'https://maven.google.com/' name 'Google' } }
2、加载一些so文件时报libxxx.so- text relocations错误
原因:从6.0起,即SDK Version>=23时,系统将会拒绝加载包含text relocations的共享库,同时输出错误Log
解决:点击打开链接
3、在非activity中用context.startActivity时,报错:Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag. Is this really what you want?
原因:使用Context的startActivity方法的話,就需要开启一个新的的task(我的待跳转的activity设置了singleTask)
解决:跳转时加 intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK );
4、定时问题
a.(Thread)开启子线程后,利用while(true)实现定时循环操作,再次调用此处时记得先停止线程:thread置为null,true置为false,如果里面有sleep,则要确认当前thread完全停止
代码示例:
Thread scheduleThread = null; boolean scheduleThreadWorking = true; //定时子线程 private void scheduleThreadStart(final String s_res) { if( scheduleThread != null ) { scheduleThreadWorking = false; scheduleThread = null; } scheduleThread = //定时更新课程表 new Thread(){ @Override public void run() { while(scheduleThreadWorking){ try { //do something... Thread.sleep(TIME); } catch (InterruptedException e) { e.printStackTrace(); } } } }; try { //设置此延时,目的在于防止停止线程时停不掉 if( !scheduleThreadWorking ) Thread.sleep(TIME); } catch (InterruptedException e) { e.printStackTrace(); } scheduleThreadWorking = true; scheduleThread.start(); }b.(Handler) 代码中用到了 mHandler.sendEmptyMessageDelayed(CODE_NOTICE, 8000);来做定时器,记得要在此前加上mHandler.removeMessages(CODE_NOTICE);,以免再次调用代码时出现重复问题