這兩天打開as 出現紅一片警告,提示
Cannot access 'androidx.activity.result.ActivityResultCaller' which is a supertype of 'com.xxxxx.SplashActivity'. Check your module classpath for missing or conflicting dependencies
Cannot access 'androidx.activity.result.ActivityResultRegistryOwner' which is a supertype of 'com.xxxxx.SplashActivity'. Check your module classpath for missing or conflicting dependencies
反復clean 工程無效,查看Git修改記錄,最近也未對build.gradle 相關檔案進行過修改,莫名其妙的錯誤,雖然知道是庫檔案的問題,但是卻不知道是哪個檔案引起的,Google查詢了一下問題,有遇到過相同問題的,具體查看下面鏈接
android - Cannot access 'androidx.activity.result.ActivityResultCaller' - Stack Overflow
全網搜索問題的的答案,基本都是和上面這個帖子相關,

gradle 在加載依賴庫時會加載最新的庫,若庫檔案最新版本和老版本的結構有調整,必然會出現無法找到對應的類或者目錄沖突等檔案存在,或者包結構的問題,
但是在使用上面方法嘗試去解決問題時,錯誤并未完全修復,在AS中打開報錯類的Problems面板中 ,發現原有的兩個錯誤 ActivityResultCaller消失了 ActivityResultRegistryOwner 還存在,
帖子中也有回復存在ActivityResultRegistryOwner 錯誤 問題,但解決方案無效,
嘗試找到沖突或缺少的庫,
通過命令 gradle 專案:dependencies > test.txt 匯入到txt 中查看 依賴庫 未果
搜索 ActivityResultRegistryOwner 類 發現

想到解決ActivityResultCaller 時匯入了
implementation "androidx.activity:activity-ktx:1.2.0-alpha03"
查看AS中 匯入的庫包含的檔案

沒有 ActivityResultRegistryOwner 難怪報錯 ,那直接匯入 androidx.activity:activity:1.2.0 增加對應類是否能修復問題呢,
implementation "androidx.activity:activity:1.2.0"
匯入依賴庫,同步代碼,問題修復,大片的紅代碼消失,編譯正常,
查看AS中對應庫檔案內容

發現里面居然同時存在 上面問題中的兩個缺失類,那是不是第二個匯入的依賴庫就能解決問題呢,注釋掉
// implementation "androidx.activity:activity-ktx:1.2.0-alpha03"
implementation "androidx.activity:activity:1.2.0"
同步代碼,問題修復,運行代碼,跑在手機上 App運行正常,問題解決!!!!!!!
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊,準備下班!!!!!!!!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/398049.html
標籤:AI
上一篇:提升之路--從0開始學app自動化--app元素操作
下一篇:Android MQTT
