每次都會(huì)遇到好些重復(fù)問(wèn)題,但是好多時(shí)候忘記上次是怎么解決寿冕,所以留下個(gè)文章記錄一下bug的前世今生以及如何銷毀
1. Circular dependencies cannot exist in RelativeLayout
RelativeLayout 布局陷入死循環(huán),就是兩個(gè)控件之間互相 調(diào)用
2.微信已經(jīng)安裝,但是點(diǎn)擊微信分享或者支付,判斷微信是否按照返回false(包名檢驗(yàn))
sdk檢查和包名檢查 雙重檢驗(yàn)
if(微信sdk.是否已安裝微信){
return true
}else if(微信包名 == 已安裝apk的包名){
return true
}else{
return fasle
}
/**
*
* 判斷微信是否已安裝
* @return true安裝, false未安裝
*/
public static boolean isWeChatAppInstalled(Context context) {
IWXAPI api = WXAPIFactory.createWXAPI(context, "申請(qǐng)的微信AppId");
if(api.isWXAppInstalled() ) {
return true;
} else {
PackageManager packageManager = context.getPackageManager();// 獲取packagemanager
List<PackageInfo> pinfo = packageManager.getInstalledPackages(0);// 獲取所有已安裝程序的包信息
if (pinfo != null) {
for (int i = 0; i < pinfo.size(); i++) {
String pn = pinfo.get(i).packageName;
if (pn.equalsIgnoreCase("com.tencent.mm")) {
return true;
}
}
}
return false;
}
}
3. java.lang.IndexOutOfBoundsException setSpan (12 ... 12) ends beyond length 10
EditText設(shè)置了maxLength惨篱,最多輸入字符個(gè)數(shù),設(shè)置默認(rèn)數(shù)據(jù)的時(shí)候围俘,字?jǐn)?shù)超過(guò)設(shè)置的最大字?jǐn)?shù)
mInputPeople.setText(mLocationBean.getRealName());
mInputPeople.setSelection(mLocationBean.getRealName().length() - 1);
4.DialogFragment java.lang.IllegalStateException Can not perform this action after onSaveInstanceState with DialogFragment
大致意思是說(shuō)我使用的 commit方法是在Activity的onSaveInstanceState()之后調(diào)用的砸讳,這樣會(huì)出錯(cuò),因?yàn)閛nSaveInstanceState
方法是在該Activity即將被銷毀前調(diào)用界牡,來(lái)保存Activity數(shù)據(jù)的簿寂,如果在保存玩狀態(tài)后再給它添加Fragment就會(huì)出錯(cuò)。解決辦法就
是把commit()方法替換成 commitAllowingStateLoss()就行了宿亡,其效果是一樣的常遂。
解決方案
5.Annotation processors must be explicitly declared now 或者 Please add them to the annotationProcessor configuration
在app的build中 android {
...
defaultConfig {
...
//添加如下配置就OK了 javaCompileOptions { annotationProcessorOptions { includeCompileClasspath = true } }
}
...
}
6. Android studio 運(yùn)行java main 函數(shù)--SourceSet with name 'main' not found
圖片.png
解決方法:在.idea文件夾下的gradle.xml文件中添加<option name="delegatedBuild" value="false" />,然后重新運(yùn)行就可以了
圖片.png