1.Unsupported Modules Detected: Compilation is not supported for following modules
問題描述: 在程序界面的右上角提示無法編輯程序
解決辦法: File -> Invalidate Caches / Restart -> Invalidate Caches & Restart.
2.Gradle sync failed: Connection timed out: connect Consult IDE log for more details (Help | Show Log)
問題描述: 向AS 導入某個project之后,在運行某個module時出現如下錯誤,導致無法運行:
打開Messages提示:
這說明系統嘗試下載gradle-3.3-all.zip但失敗。
解決辦法:
打開AS的project視圖,從根目錄gradle->wrapper->gradle wrapper.properities中,找到distributionUrl值,如圖,這說明需要gradle-3.3-all.zip,并且之前系統也提示需要下載它。
下載網址:https://services.gradle.org/distributions/gradle-3.3-all.zip(依據具體情況下載需要的gradle,比如需要grade3.2,則下載網址是https://services.gradle.org/distributions/gradle-3.2-all.zip),下載完成后直接把gradle-3.3-all.zip拖到該路徑下:/Users/<用戶名>/.gradle/wrapper/dists/gradle-3.3-all/<...>/。
重新運行即可。
3.Building gradle project info...(一直)
問題描述: 向AS 導入某個project時,一直卡在這里,還是gradle的問題。
解決辦法: 第一種解決辦法可參考上個問題,第二種辦法是修改該project的gradle-wrapper.properties里的gradle版本為自己電腦已有的版本。比如已有gradle-3.3-all.zip,那么只需將最后一行替換掉:
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip。
重新啟動即可。
4.Error:(1, 0) Plugin with id 'com.example.application' not found.
問題描述:導入project時報錯找不到com.android.application插件,這很可能是開發人員在上傳代碼時直接把module的整個文件夾丟上去,缺失project里面的build腳本,導致下載者出現上述錯誤現象。
解決辦法:
修改module下的build.gradle,在文件最后貼上紅框內這段代碼,最后try again,就導入成功了:
即以下代碼:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.2.3'
//注意:更換成自己的AS的版本,比如這里是2.2.3版本
}
}
allprojects {
repositories {
jcenter()
}
}
5.'C:\Users\minmin\AppData\Local\Android\Sdk\platform-tools\adb.exe start-server' failed -- run manually if necessary
問題描述:編譯項目開啟模擬器的時候出現問題,提示“adb程序開啟失敗”,引發原因是adb程序的端口被占用。
解決辦法:打開任務管理器將占用端口的程序kill掉。步驟為:
step1: 通過cmd查看占用adb端口的程序,adb默認端口為5037,因此查詢代碼為:
netstat -aon|findstr "5037"
step2:通過以上查詢可知adb端口號被6404占用了,接下來繼續通過cmd查詢6404端口對應的程序,查詢代碼為:
tasklist|findstr "6404"
step3:通過以上查詢可知是360手機助手程序占用了端口,然后打開任務管理器找到對應的程序kill掉,重新打開編譯器即可。
題外話:還遇到一種特殊情況,最后發現是adb.exe占用。此時可以嘗試重新啟動AS,先點擊“運行”出現對話框后,然后再連接真機,順序一定不要反。
6.android.view.InflateException: Binary XML file line #6: Error inflating class com.examp...
問題描述:在引入自定義View時報錯,排除是引入類名的錯誤(正確寫法是包名.類名)之后,很可能是構造函數的問題。
解決辦法:在自定義一個View時,派生實現基類View有三個構造函數:View(Context context) 、View(Context context, AttributeSet attrs)和View(Context context, AttributeSet attrs, int defStyle)。其中第二個和第三個構造函數對于XML引用方式是必須實現的,因此補全構造函數即可。
7. adapter調用notifyDataSetChanged()但失效
問題描述:很可能是因為數據源又指向了一個新的引用,而adapter只關心原地址所指向的數據有沒有改變。
解決辦法:先調用clear()方法清空數據源dataList,再調用addAll()方法添加新的數據。
8.Error:android.database.sqlite.SQLiteException: table Memo has no column named year (code 1):while compiling: INSERT INTO user(...) VALUES (?,?,?,?,?,?,?,?,?,?)
問題描述:數據庫錯誤:添加數據時找不到該表的某一字段
解決辦法:檢查字段后是否用逗號“,”分開;檢查賦值和取值時所有字段是否一致;檢查賦值和取值時所用字段是否和表字段一致;如果更改表字段了,檢查是否有對數據庫進行重新卸載安裝或者升級。
9.Error:java.lang.ArrayIndexOutOfBoundsException: length=2; index=3
問題描述:自定義一個BaseAdapter子類適配器時引發的問題,這里定義了兩個type的item,在重寫getItemViewType()方法里返回相對應的兩種類型item的int值,但type的int值是從3開始。
解決辦法:將type值分別改為0,1即可解決。
10. java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
問題描述:該類繼承的是v7兼容包里的AppCompatActivity,卻使用了非兼容包里的主題"@android:style/Theme.NoTitleBar.Fullscreen"或”@android:style/Theme.Black.NoTitleBar”,故導致程序崩潰。
解決辦法:改為繼承Activity
集齊十個可召喚神龍哦~
END