Android Studio 常見問題

使用 Git

1. Can't update: no tracked branch

復現(xiàn)場景: 假設當前工作環(huán)境的 local 分支是 local-v1-dev,然后通過刪除了這個分支,并 check out 到了另一個分支 local-v2-dev 上去,然后使用 pull 操作拉取遠程 remote 分支代碼時出現(xiàn)問題。

解決措施: 假設需要切換新的本地分支名稱為newBranch,需要拉去遠程的 newBranch 分支,并執(zhí)行更新操作,通過使用Android Studio 的 終端 Terminal 工具,執(zhí)行下面的命令讓本地分支和遠程分支完成匹配即可。

git checkout newBranch
git branch --set-upstream-to=origin/newBranch

2. 重命名遠程分支

在git中重命名遠程分支,其實就是先刪除遠程分支,然后重命名本地分支,再重新提交一個遠程分支。

先查看遠程分支:
使用 git branch 命令可以查看當前所有本地分支,加上 -a 參數(shù)可以查看遠程分支,遠程分支會用紅色表示出來:
git branch -a

刪除遠程分支和 tag:
a. 刪除指定的遠程分支(把 <branchName> 替換成要刪除掉的分支名稱)
git push origin --delete <branchName>
b. 刪除指定的tag(把 <tagname> 替換成要刪除掉的tag名稱)
git push origin --delete tag <tagname>

在 github 上操作時,在刪除遠程分支時有可能碰到下面這個錯誤:
remote: error: refusing to delete the current branch:
這是由于在 github 中,被刪除的分支是項目的默認分支。要解決此問題,需要進行下面的操作:

  • 進入 github 中該項目的 Settings 頁面;
  • 設置 Default Branch 為其他的分支(例如 master);
  • 重新執(zhí)行刪除遠程分支命令。

重命名本地分支:
git branch -m <oldBranchName> <newBranchName>

推送本地分支:
git push origin <newBranchName>

3.為分支打上 tag

為本地分支打上 tag
git tag -a v1.0.0 -m 'version 1.0.0'

把本地tag推送到遠程:
推送本地全部的 tag
git push --tags
推送本地指定的 tag
git push origin <tagName>

獲取遠程tag
git fetch origin tag <tagName>

項目編譯

配置 apk 文件輸出名稱

 buildTypes {
 release {
  applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('.apk')) {
                        // 輸出apk名稱為appName-versionName-release.apk
                        def fileName = "appName-${defaultConfig.versionName}-release.apk"
                        output.outputFile = new File(outputFile.parent, fileName)
                    }
                }
            }
}
}

注意 Android Studio 3.0 中支持的新版本 gradle 改變 output.outputFile 為私有屬性,所以上面的代碼要改成:

android.applicationVariants.all { variant ->
    variant.outputs.all {
        outputFileName = "${variant.name}-${variant.versionName}-release.apk"
    }
}

Java 8 支持

defaultConfig {
   jackOptions {
            enabled true
        }
}
buildTypes {

    compileOptions {
        targetCompatibility 1.8
        sourceCompatibility 1.8
    }
}

注意 Android Studio 3.0 中支持的新版本 gradle 中把 jackOptions 移除。

Sources for ‘Android API 26 Platform’ not found.

這是 Android Studio 關聯(lián)不上源碼導致的,下載對應的 API 源碼文件后,會存放在 /Users/xxxxx/Library/Android/sdk/sources/android-26 文件夾,但是有可能明明下載了源碼但是 Android Studio 就是提示找不到。這是 Android Studio 配置文件未能更新導致的,可以自行修改即可:

  1. 找到以下路徑,并打開文件
    ~/Library/Preferences/AndroidStudioXXX/options/jdk.table.xml

  2. 修改 jdk.table.xml 文件中對應 API 版本配置信息
    手動配置 API 26 Sources 文件路徑


  3. 保存配置文件,重新 Android Studio 即可。

項目依賴的某個模塊引用了 aar 包導致的編譯問題

在某個子模塊 tencent-ysdk 引用了 aar 包

module.png

依賴了 aar 包的 module:tencent-ysdk 的 build.gradle

dependencies {
    compile(name: 'YSDK_Android_1.3.6_841', ext: 'aar')
    compile 'com.android.support:appcompat-v7:26.1.0'
    compile fileTree(dir: 'libs', include: ['*.jar'])
}

應用 module:app 依賴了 tencent-ysdk模塊,其 build.gradle

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:26.1.0'
    compile project(':comment')
    compile project(':tencent-ysdk')
}

需要在 project 下的 build.gradle 中設置

allprojects {
    repositories {
        jcenter()
        maven { url 'https://maven.google.com' }

        flatDir {
            // 由于Library module中引用了庫的 aar,在多 module 的情況下,
            // 其他的module編譯會報錯,所以需要在所有工程的repositories
            // 下把Library module中的libs目錄添加到依賴關系中
            dirs project(':tencent-ysdk').file('libs')
        }
    }
}
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,872評論 25 709
  • 撰寫:小君 ,峻愷 無意中看到一個這樣的題目,久坐會要命。這下蒙圈了……很敏感的詞,顯然跟自己很符合的病灶詞語。 ...
    經典373閱讀 310評論 0 1
  • 今天是2017年5月25號,一個陽光明媚的日子。 昨晚至今天早上停電,今天早早的起來跑步,并和媽媽一起去買了個菜,...
    大Coco的中文叫韓大臉閱讀 180評論 2 2
  • 有一個不大的房子。 裝修設計統(tǒng)統(tǒng)自己搞定。 養(yǎng)些綠色植物。 一個小觀賞魚缸只放兩條小魚。 舒適的情侶睡衣。 一條呆...
    鯁子閱讀 172評論 0 0
  • 這是一個最好的時代,這是一個最壞的時代。 這是一個智慧的時代,這是一個愚蠢的時代。 這是一個光明的季節(jié),這是一個黑...
    聽說幾撿過流星啊閱讀 253評論 0 0

友情鏈接更多精彩內容