AS 問題與技巧

筆記都是一些小的問題,之前遇到一些問題都會(huì)單獨(dú)記錄,現(xiàn)在打算寫到一起

全局搜索

ctrl+shift+f

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ò)誤信息等查看上面的鏈接,或者這里

設(shè)置代理

之前原本以為 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

Extract Resource

一鍵將字符串統(tǒng)一放在 String 的 xml 資源文件。
選中字符, Alt + Enter → Extract string/dimension resource

buildToolVersion 與 CompileSdkVersion的區(qū)別

可見于這里

  • 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 盤下的配置文件:

C:\Users\用戶名

刪除對(duì)應(yīng)版本號(hào)的文件夾與 .android 即可

AS 的窗口顯示與隱藏

之前不小心關(guān)閉了一些窗口才發(fā)現(xiàn)有些窗口是可以關(guān)閉的:

View

下面的 Toolbar,Tool Buttons,Status Bar 對(duì)應(yīng)的窗口自己試一下就知道。

插件

自己在用的插件

快速注釋的快捷鍵

keymap

Installing APKs 報(bào)錯(cuò)

報(bào)錯(cuò)信息

這個(gè)問題是在升級(jí) AS 到 2.3 版本之后遇到的,因?yàn)槭窃谏?jí)后立馬不行了,這其中也沒有修改代碼,所以可以確定是非代碼的原因。

在小米和魅族的部分機(jī)型上可以通過一些設(shè)置直接解決問題的。

  • 關(guān)閉 MIUI 優(yōu)化(MIUI8)
關(guān)閉 MIUI 優(yōu)化
  • 設(shè)置調(diào)試應(yīng)用(Flyme 6)
選擇調(diào)試應(yīng)用
  • 某些情況下,還需要設(shè)置調(diào)試的運(yùn)用為保持后臺(tái)(Flyme 6):
設(shè)為保持后臺(tái)

以上操作僅供參考。

  • 注意要多嘗試 Rebuild Project:
Rebuild Project

如果還是不行:

  • 取消勾選 Enable Instant Run to host ...
image.png

然后再次 Rebuild ,然而這樣會(huì)禁止一些功能:

黃色小閃電會(huì)變得不可點(diǎn)擊

自定義快捷的代碼模板

比如輸入 loge 時(shí)可以快速選擇為 Log.e()

loge

這個(gè)功能在新版本的 Android Studio 中是默認(rèn)的,在 .java 后綴的文件中都可以這樣使用,但是在 Canary 的 3.0 中暫時(shí)還沒有,所以嘗試手動(dòng)添加。
File -> Settings ->Editor ->Live Templates

Live Templates

按「+」添加模板:

添加模板

Abbreviation 是觸發(fā)模板的關(guān)鍵字,Descripiton 是描述。
Template 輸入框中輸入模板,模板里有一個(gè) "$METHOD_NAME$" 可以在 Edit variables 中為這個(gè)字段填入相應(yīng)的數(shù)據(jù):

Edit variables

最后還可以在列表中,右鍵選擇 Change context 改變改模板的使用范圍。

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:iconandroid: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ù)更新...

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,532評(píng)論 25 708
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 134,991評(píng)論 19 139
  • 孤獨(dú)是人生中一座必經(jīng)的獨(dú)木橋,每個(gè)人都要走過。 不管時(shí)間長(zhǎng)短、孤獨(dú)深淺,邁過孤獨(dú),才會(huì)開啟新的生活?!稊[渡人》里,...
    云行君閱讀 3,123評(píng)論 2 4
  • 三生三世 翩翩少年沖起一腔熱血,欲降妖除魔天地之間,是否還有完美紅顏,可留在身邊? 不知江湖善惡難分難解,唯有赤子...
    清凈墨蓮閱讀 374評(píng)論 0 1
  • 各變量及解釋 $$:獲取當(dāng)前shell的pid $0:獲取當(dāng)前腳本的名字 $n:獲取輸入是第幾個(gè)參數(shù),如test....
    hbh404閱讀 2,355評(píng)論 0 3