筆記都是一些小的問題,之前遇到一些問題都會(huì)單獨(dú)記錄,現(xiàn)在打算寫到一起
全局搜索
File mask 選項(xiàng),選中之后會(huì)限制在某些文件中搜索。
某些時(shí)候是一個(gè)不錯(cuò)的篩選辦法,但之前沒有注意到,導(dǎo)致搜不到想要的。
.gradle 文件丟失
報(bào)錯(cuò):java.lang.NullPointerException (no error message)
之前遇到過類似的問題,項(xiàng)目中的 .gradle 中丟失了文件,解決方法:
1 gradlew -stop
2 刪除根目錄中的 .gradle
3 rubuild
詳細(xì)錯(cuò)誤信息等查看上面的鏈接,或者這里
之前原本以為 AS 是不可以用 SOCK 方式的代理的,但其實(shí)和 HTTP 方式的設(shè)置方法都差不多。
編譯時(shí)使用舊版本的JDK
1 更新JAVA_HOME環(huán)境變量,
2 File->Project Structure->SDK Location和File->Other Settings->Default Project Structure->SDK Location
一鍵將字符串統(tǒng)一放在 String 的 xml 資源文件。
選中字符, Alt + Enter → Extract string/dimension resource
可見于這里
CompileSdkVersion //SDK的版本號(hào),也就是API Level,例如API-19、API-20、API-21等等。
buildeToolVersion //構(gòu)建工具的版本,其中包括了打包工具aapt、dx等等。這個(gè)工具的目錄位于..your_sdk_path/build-tools/XX.XX.XX
將所有的設(shè)置恢復(fù)默認(rèn)
刪除 c 盤下的配置文件:
刪除對(duì)應(yīng)版本號(hào)的文件夾與
.android
即可
AS 的窗口顯示與隱藏
之前不小心關(guān)閉了一些窗口才發(fā)現(xiàn)有些窗口是可以關(guān)閉的:
下面的 Toolbar,Tool Buttons,Status Bar 對(duì)應(yīng)的窗口自己試一下就知道。
插件
自己在用的插件
快速注釋的快捷鍵
Installing APKs 報(bào)錯(cuò)
這個(gè)問題是在升級(jí) AS 到 2.3 版本之后遇到的,因?yàn)槭窃谏?jí)后立馬不行了,這其中也沒有修改代碼,所以可以確定是非代碼的原因。
在小米和魅族的部分機(jī)型上可以通過一些設(shè)置直接解決問題的。
- 關(guān)閉 MIUI 優(yōu)化(MIUI8)
- 設(shè)置調(diào)試應(yīng)用(Flyme 6)
- 某些情況下,還需要設(shè)置調(diào)試的運(yùn)用為保持后臺(tái)(Flyme 6):
以上操作僅供參考。
- 注意要多嘗試 Rebuild Project:
如果還是不行:
- 取消勾選 Enable Instant Run to host ...
然后再次 Rebuild ,然而這樣會(huì)禁止一些功能:
自定義快捷的代碼模板
比如輸入 loge
時(shí)可以快速選擇為 Log.e()
:
這個(gè)功能在新版本的 Android Studio 中是默認(rèn)的,在 .java
后綴的文件中都可以這樣使用,但是在 Canary 的 3.0 中暫時(shí)還沒有,所以嘗試手動(dòng)添加。
File -> Settings ->Editor ->Live Templates
按「+」添加模板:
Abbreviation 是觸發(fā)模板的關(guān)鍵字,Descripiton 是描述。
Template 輸入框中輸入模板,模板里有一個(gè) "$METHOD_NAME$"
可以在 Edit variables 中為這個(gè)字段填入相應(yīng)的數(shù)據(jù):
最后還可以在列表中,右鍵選擇 Change context
改變改模板的使用范圍。
Generate Signed APK 報(bào)錯(cuò) OOM
異常說明 OOM:Java heap space,就是打包時(shí) java 的堆溢出了 。
可以通過修改 java 虛擬機(jī)的配置解決。
在 cradle.properties
文件下的
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8
jvmarges=-Xmx2048m
代表了 JVM 最大允許分配的堆內(nèi)存,
-XX:MaxPermSize=512m
代比愛 JVM 最大允許分配的非堆內(nèi)存。
Manifest merger failed with multiple errors
Android Studio 的 Gradle 插件默認(rèn)會(huì)啟用 Manifest Merger Tool
,若 Library 項(xiàng)目中定義了與主項(xiàng)目相同的屬性,比如默認(rèn)生成的 android:icon
和android:theme
,則出現(xiàn)上面的錯(cuò)誤。
此時(shí)要在 AndroidManifest.xml
文件中:
- 根標(biāo)簽
<manifest>
下, 加入"xmlns:tools="http://schemas.android.com/tools"
,否則會(huì)找不到
namespace。 -
<application>
標(biāo)簽下添加tools:replace="android:icon, android:theme"
,此處只需要 replace 重復(fù)的屬性,多個(gè)屬性用逗號(hào)隔開。
持續(xù)更新...