1浪漠、請(qǐng)求后臺(tái)數(shù)據(jù)的過(guò)程中陕习,我們一般要用到Dialog,剛打開(kāi)頁(yè)面的時(shí)候址愿,我們一般會(huì)先去請(qǐng)求網(wǎng)絡(luò)加載數(shù)據(jù)该镣,如果打開(kāi)頁(yè)面后,在Dialog顯示前响谓,立即點(diǎn)擊返回损合,就會(huì)報(bào)錯(cuò):
[Unable to add window — token android.os.BinderProxy@42824 is not valid; is your activity running?]
這句話意思是當(dāng)Dialog顯示的時(shí)候省艳,Dialog所依附的Activity銷毀了,所以就報(bào)錯(cuò)嫁审。
解決方式:
if(!((Activity) context).isFinishing())
{
//show dialog
}
2跋炕、如果頁(yè)面中含有Spinner控件的時(shí)候,當(dāng)頁(yè)面剛OnCeate的時(shí)候Spinner會(huì)相應(yīng)默認(rèn)選中的item律适。
3辐烂、EventBus采坑
問(wèn)題:EventBus消息接收時(shí),能接收消息捂贿,但是無(wú)法更新ui
現(xiàn)象:我的邏輯是第一個(gè)頁(yè)面跳轉(zhuǎn)到第二個(gè)頁(yè)面棉圈,然后再第二個(gè)頁(yè)面發(fā)送消息,第一個(gè)頁(yè)面接收消息然后更新ui眷蜓。
解決:第二個(gè)頁(yè)面發(fā)送完消息之后分瘾,直接finish()掉,而不是重新打開(kāi)第一個(gè)頁(yè)面吁系。
4德召、gradle版本踩坑
問(wèn)題:當(dāng)導(dǎo)入github上或者別人寫(xiě)的Demo時(shí),由于別人用的AS比自己的AS高汽纤,所以會(huì)讓你提示升級(jí):
This Gradle plugin requires a newer IDE able to request IDE model level 3
或者是:This Gradle plugin requires Studio 3.0 minimum
解決方式:1上岗、升級(jí)AS
2、在gradle.properties中加入以下這句:重新編譯即可蕴坪。
android.injected.build.model.only.versioned = 3
5肴掷、問(wèn)題:Failed to open zip file
解決方式:https://jingyan.baidu.com/article/48b37f8ddbcbbe1a64648832.html
重新下載導(dǎo)入項(xiàng)目中的gradle版本(壓縮包),然后放到電腦中的對(duì)應(yīng)gradle目錄下。
gradle下載地址:http://services.gradle.org/distributions/
gradle目錄地址:C:\Users\lenovo.gradle\wrapper\dists
6背传、問(wèn)題是:
Error:Execution failed for task ':app:mergeDebugResources'.>
Error: java.util.concurrent.ExecutionException:com.android.tools.aapt2.Aapt2Exception: AAPT2 error:
解決方式是:
在工程根目錄下新建gradle.properties文件 加入
android.enableAapt2=false
即可解決呆瞻。
7、獲取apk的SHA1值:
先切換到j(luò)dk的bin目錄下:
然后輸入
keytool -list -v -keystore 完整路徑下的\正式簽名.keystore
8径玖、如果項(xiàng)目依賴的項(xiàng)目太多痴脾,導(dǎo)致引入的jar包版本號(hào)沖突,可以這樣解決:
在主項(xiàng)目的build.gradle里面:
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '25.3.0'
}
}
}
}
9梳星、編譯失斣蘩怠:Android studio Could not find lint-gradle-api.jar (com.android.tools.lint:lint-gradle-api:26.1.2).
網(wǎng)上好多說(shuō)是去掉項(xiàng)目根目錄的build.gradle中的allprojects{...}里面寫(xiě)上google() ,但是試驗(yàn)的不管用冤灾,原來(lái)是jcenter()和google()寫(xiě)反了前域,換一下就好啦。正確的寫(xiě)法是:
repositories {
google()
jcenter()
mavenCentral()
}