android xml 未能解析文件,Android Studio提示“无法解析符号”,但项目已编译
我在build.gradle中使用以下內容在AndroidStudio中導入twitter4j:
dependencies {
compile 'com.android.support:support-v4:18.0.+'
compile files('libs/twitter4j-core-3.0.4.jar')
}
該項目編譯正常,我可以毫無問題地創建twitter對象。 但是,在Android Studio中,引用該庫的所有內容均顯示"無法解析符號"并顯示為紅色。 我需要做什么才能使Android Studio識別該庫?
我已經嘗試過重建項目,。/ gradlew clean,然后關閉并重新打開我的項目。
Android Studio的可能重復項無法解析符號,但代碼正確執行
2018年,Android Studio 3+:有時,Android Studio和Gradle不同意。 解決方案在這里:stackoverflow.com/questions/50313885/
將練習項目導入Android Studio后,我遇到了同樣的問題。 導入Android Studio時,警告我并建議更新sdk版本,因此我遵循了建議。 之后,某些內容不再兼容,因此Android Studio建議更改其他版本。 遵循所有這些建議后,我遇到了相同的"找不到符號"問題。 我撤消了更改,再次導入了項目,這次沒有遵循Android Studio的提示。 之后,錯誤消失了。 小心盲目遵循該程序的建議。
相關文章-Android Studio突然無法解析符號
不知道這是否行得通,但到目前為止,我唯一的想法是:右鍵單擊AS中文件樹中的jar文件,然后選擇"添加為庫..."。
編輯:您可以執行"文件"->"使緩存無效...",然后選擇"使無效并重新啟動"選項以解決此問題。
編輯2:此修復程序應適用于所有類似的事件,而不是特定于twitter4j的解決方案。
右鍵單擊罐子時,我沒有將其作為選擇。我正在運行0.2.13。
這可能意味著您已經做到了。嘗試"文件">"項目結構",并確認在"模塊"節點中看到.jar文件。
啊,是的,它在那里。
您可以執行"文件"->"使緩存無效...",然后選擇"無效并重新啟動"選項以解決此問題。不幸的是,那是我的最后一個主意。
使緩存無效并重新啟動對我不起作用。我也嘗試過重新安裝android studio并重新導入項目。這很煩人...
嘗試確保已通過sdk管理器下載了最新的支持工具。
" File"->" Invalidate Caches ..."剛剛保存了我的一天。我在這個問題上浪費了很多時間。為什么這個答案不是最佳搜索結果?非常感謝!
不為我工作。所做的工作是注釋出遇到麻煩的行->成功編譯整個項目->在行中注釋。我認為gradle任務順序存在問題。
Android Studio 2.3也可以使用。
感激地折騰
嘗試在文件>項目結構>(選擇項目)>依賴關系中更改依賴關系的順序。
Invalidate Caches對我不起作用,但是將我的構建從列表的底部移到頂部卻可以。
更改依賴關系的順序對我有幫助,我嘗試了答案中給出的所有解決方案,只有您能幫助我,謝謝。
除了這個解決方案,對我沒有任何幫助!謝謝。
向上移動一個依賴項對我來說很成功! (Android Studio 3.0.1)。
這適用于Android Studio 3.0.1。
是的,移動依賴項并不重要,只需更改任何人的順序,這也適用于Android Studio 3.3。
這對我有用。
在"項目"面板中,右鍵單擊項目名稱,然后
從彈出菜單中選擇Open Module Settings。
然后將Compile SDK Version更改為可用的最低版本(您在項目中設置的最低sdk版本)。
等待android studio加載所有內容。
它將給您一些錯誤,請忽略那些錯誤。
現在轉到您的Java文件,Android Studio會建議您導入
import android.support.v4.app.FragmentActivity;
導入它,然后返回到Open Module Settings并將sdk的編譯版本更改回以前的版本。
等待東西加載,瞧。
其出色的工作。就我而言,Android Studio向我報告了所有無法解析的SDK類(包括String,Integer,TextView等)。在此之前,aStudio還告訴我她找不到我用來編譯項目的android-14 SDK。我忽略了這個問題。最終,我找到了答案并按照以下步驟進行操作,更改了編譯SDK版本即可。感謝您節省我的時間。
Now go to your java file and android studio will suggest you import就我而言
因為我的是由導入的庫項目引起的,請在build.gradle中鍵入一些內容,然后再次將其刪除,然后按sync,錯誤消失了。
我的Android應用程序也存在此問題,具體取決于我自己的一些Android庫(使用Android Studio 3.0和3.1.1)。
每當我更新一個庫并返回到應用程序,觸發Gradle Sync時,Android Studio就無法檢測到我對該庫進行的代碼更改。編譯工作正常,但是Android Studio使用lib在某些代碼上顯示了紅色錯誤行。
經過調查,我發現這是因為gradle一直指向我的庫的舊編譯版本。
如果轉到yourProject / .idea / libraries /,您將看到xml文件列表,其中包含指向庫的編譯版本的鏈接。這些文件以Gradle__artifacts _ *。xml開頭(其中*是您的庫的名稱)。
因此,為了使Android Studio能夠獲取您的庫的最新版本,您需要刪除這些Gradle__artifacts _ *。xml文件,然后Android Studio將重新生成它們,指向您庫的最新編譯版本。
如果您不想每次單擊" Gradle sync"(誰愿意這樣做...)時都手動執行此操作,則可以將此小gradle任務添加到應用程序的build.gradle文件中。
task deleteArtifacts {
doFirst {
File librariesFolderPath = file(getProjectDir().absolutePath +"/../.idea/libraries/")
File[] files = librariesFolderPath.listFiles({ File file -> file.name.startsWith("Gradle__artifacts_") } as FileFilter)
for (int i = 0; i < files.length; i++) {
files[i].delete()
}
}
}
為了使您的應用在執行gradle同步之前始終執行此任務,您只需轉到Gradle窗口,然后在yourApp / Tasks / other /下找到" deleteArtifacts"任務,右鍵單擊它并選擇"執行同步之前"(請參見下文)。
現在,每次執行Gradle同步時,Android Studio都會被迫使用您的庫的最新版本。
非常感謝,這對我也很有效!
當我在項目中遇到這個問題(紅色代碼,但它們可以正常工作)時;
首先,我做到了(文件->指示兌現)->(無效并重新啟動)。
最后,我在我的應用程序中重新同步了build.gradle文件。問題解決后。
這次Invalidate Caches / Restart不適用于我。
找到了這樣的解決方案:
刪除build.gradle中的compile ***或implementation ***行。
清理并重建。錯誤應該在這里提出。
將步驟1中的行添加回build.gradle。
清理并重建。
奇怪的...
當我什么都沒做時,這對我有用。
不幸的是,它對我沒有用。
當我的Glass項目未使用Android Studio默認位置中安裝的SDK時,發生了此問題。我正在使用以前從ADT獲得的另一個位置,因為我試圖避免重新下載所有內容。一旦將項目指向Android Studio安裝位置中的SDK位置,問題就消失了。
是的,我想這也是個好消息:默認情況下,android studio將決定所有SDK都安裝在默認的android studio安裝目錄中。如果沒有遵循該模式,則需要對此進行修改。
我有幾天這個問題,終于解決了!
順便說一句,所有其他解決方案都不適合我。
解決方案:我的項目路徑中包含特殊字符!
只要確保這些都不用,就應該沒問題,或者至少有其他解決方案之一適合您。
希望這對某人有幫助!
請檢查您的項目路徑中是否包含特殊字符,如! (感嘆號)。在我遇到stackoverflow.com/questions/32477067/的類似問題中,這是根本原因。許多Java應用程序似乎不容許這樣的特殊字符(例如,從終端清除gradlew會失敗并拋出RunTimeException。)在線發布的其他解決方案都沒有幫助我。但是,一旦我刪除了!從頭開始并進行了干凈的構建,Android Studio神奇地工作了。
哇!謝謝 :)
無效的緩存對我不起作用(這次)。對我來說,更改gradle并再次同步就足夠了。或https://stackoverflow.com/a/29565362/2000162
我最近在Android Studio 1.3中遇到了同樣的問題。唯一可行的解??決方案是刪除.gradle和.idea文件夾,然后將項目重新導入到Android Studio中。
如果沒有其他幫助,您可以采取措施,因為Android Studio突然無法解析符號建議:
Exit Android Studio
Back up your project
Delete all the .iml files and the .idea folder
Relaunch Android Studio and reimport your project
對于那些嘗試接受的答案卻沒有成功的人,
我也嘗試了接受的答案,但對我沒有用。之后,我使用存儲庫更新了我的項目并同步了該項目,但無法解決警告消失了。
就我而言,我已經使用GUI創建了一個新文件,并在文件中定義了一個接口。我不斷收到此符號錯誤,因為該文件不是" java"文件。它根本沒有擴展。
將文件擴展名修改為" .java"后,系統會正確找到符號。
在我的情況下,jar文件沒有META-INF / MANIFEST.MF文件。添加一個后,它起作用了!
這對我有用-
(文件->指示兌現)->(無效并重新啟動)。
關閉所有文件并關閉Android Studio對我來說很有效。
我嘗試了使緩存無效/重新啟動或清除項目->重建項目。這些對我沒有用。
最終的解決方案是打開IDE左側的Project窗口,在Project模式下,刪除.gradle和.idea文件夾,然后可以使緩存無效并重新啟動。這樣就解決了。
不幸的是,它對我沒有用。
在build.gradle中將編譯更改為實現。
更改語言注入設置對我有用。
Place the cursor on any of the red underlined code and Alt + Enter
Now select Language Injection Settings and a window will open as shown below.
Uncheck the selected option and click Ok
希望這對某人有幫助。
當我刪除.gradle/caches中的整個文件時,這發生在我身上,然后Studio下載了依賴項。 External Libraries中未顯示依賴關系,但我可以成功構建App。 rebuild clean Invalidate and Restart無效。我通過以下步驟解決了問題:
完全關閉Android Studio
刪除項目中的.idea包
重新啟動Android Studio
不幸的是,它對我沒有用。
我已經嘗試過了,但是對我沒有用:
Invalidate Caches / Restart
Changing the order of dependencies
Sync project with Gradle Files
Clean -> Rebuild Project
就我而言,請執行以下操作:
Delete all files in .idea/libraries folder
Rebuild Project
對我來說,我將gradle-wrapper.properties更新為4.4
distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-all.zip
我找到了最簡單的方法
確定在Studio中引起語法錯誤的庫。
例如,如果AppCompatActivity顯示錯誤,則將對AppCompat依賴項執行以下操作。
刪除顯示語法錯誤和同步的依賴項。
再次添加并同步。
就是這樣,錯誤消失了!
之前
后
上面的答案都不適合我。
經過大量嘗試,我將Project / build.gradle中的com.android.tools.build:gradle從2.3.0升級到了3.0.1,并且可以正常工作。
我猜com.android.tools.build:gradle的版本應該與AndroidStudio的版本匹配,我的AS版本是3.2.1。
對于使用AndroidStudio 2.2.3的情況,解決方案是在Gradle設置中更改gradle包裝器/分發以使用本地包裝(盡管被"推薦")。
您需要重新啟動Android Studio。
總結
以上是生活随笔為你收集整理的android xml 未能解析文件,Android Studio提示“无法解析符号”,但项目已编译的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: android 后台邮件发送,Andro
- 下一篇: android 测试工程 关闭混淆,混淆