1. 程式人生 > >android studio 匯入 Launcher2 模組,並編譯執行

android studio 匯入 Launcher2 模組,並編譯執行

AS 版本:2.3.3

aosp 版本: 4.4 (已經編譯過)

launcher 目錄: .../packages/apps/ 下的 Launcher2 資料夾

詳細步驟:

1. 在 AS 中 新建一個專案:LauncherTest

2.在 專案中 新增一個 Module : launcher22

3. 將 原始碼 Launcher2 資料夾 中的 AndroidManifest.xml 複製並替換掉 launcher22 中的 AndroidManifest.xml.

4.將 原始碼 res 目錄 複製 並 替換掉 launcher22 中的 res 目錄.

5.複製 原始碼 src 目錄下的 所有檔案 放到 launcher22 中的 java 目錄下.

操作完上述步驟後 AS 結構如下:

6.修改 API 版本為 19:

7.點選 build -> Clean Project 或者  會出現一些錯誤資訊,解決掉錯誤資訊就可以運行了:

1).錯誤1:

Error:Execution failed for task ':launcher33:mergeDebugResources'.
> D:...src\main\res\values\strings.xml: Error: Unsupported type 'add-resource'

解決辦法:

將strings檔案中  :

<add-resource type="string" name="default_folder_name" />

替換為

<string name="default_folder_name" />

dimens檔案中 :

<add-resource type="dimen" name="custom_cling_margin_top" />
    <add-resource type="dimen" name="custom_cling_margin_right" />
    <add-resource type="dimen" name="custom_cling_margin_left" /> 

替換為

  <dimen name="custom_cling_margin_top">0dp</dimen>
    <dimen name="custom_cling_margin_right">0dp</dimen>
    <dimen name="custom_cling_margin_left">0dp</dimen>

2).錯誤2:

D:...\src\main\AndroidManifest.xml:25:5-47 Error:
Invalid value for attribute permission#[email protected]el at AndroidManifest.xml:25:5-47, value=(system|signature), acceptable values are (normal,dangerous,signature,signatureOrSystem)


解決辦法:

將 檔案中:

android:protectionLevel="system|signature"

修改為 :

android:protectionLevel="signature"

3).錯誤3:

D:...\build\intermediates\res\merged\debug\values\values.xml

Error:(156) Attribute "title" already defined with incompatible format.
Error:(6) Original attribute defined here.
Error:(156) Attribute "title" already defined with incompatible format.
Error:(6) Original attribute defined here.

解決辦法:

開啟 launcher22 中的 build.gradle 檔案,

刪除  compile 'com.android.support:appcompat-v7:26.+'

4).錯誤4:

D:...\LauncherTest\launcher22\src\main\java\com\android\launcher2\Launcher.java
Error:(96, 26) 錯誤: 程式包com.android.common不存在
Error:(1625, 37) 錯誤: 找不到符號
符號:   變數 Search
位置: 類 Launcher

解決辦法:

進入 編譯過的原始碼目錄:/out/target/common/obj/JAVA_LIBRARIES/android-common_intermediates/

將 classes.jar 檔案 複製到 AS 的 libs 資料夾下(如果沒有就建立一個)

並將其名稱修改為 android_common.jar .

5).錯誤5:

AAPT err(Facade for 1848697531): libpng error: Not a PNG file

解決辦法:

在 模組的 build.gradle 中 新增 :

    android {
    ...
    aaptOptions {
        cruncherEnabled = false
    }
    ...
}

6).錯誤6:

解決辦法:

將 xmlns:launcher="http://schemas.android.com/apk/res/com.android.launcher"

替換為 :

xmlns:launcher="http://schemas.android.com/apk/res-auto"

8.不出意外的話,現在重新 點選 build -> Clean Project 或者   就可以編譯成功了.

9.現在點選執行可能會顯示如下錯誤:

解決辦法:

找到 模組的 AndroidManifest.xml 檔案,

<activity
            android:name="com.android.launcher2.Launcher"
            android:clearTaskOnLaunch="true"
            android:launchMode="singleTask"
            android:screenOrientation="nosensor"
            android:stateNotNeeded="true"
            android:theme="@style/Theme"
            android:windowSoftInputMode="adjustPan">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />


                <category android:name="android.intent.category.LAUNCHER" /> // 加上這句
                <category android:name="android.intent.category.HOME" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.MONKEY" />
            </intent-filter>
        </activity>

10.安裝APK時可能會出現如下錯誤:

解決辦法:

找到 模組的 AndroidManifest.xml 檔案,

修改其對應的報錯的許可權的名稱即可,

圖上是 com.android.launcher.permission.WRITE_SETTINGS 報錯,

修改為:

    <permission
        android:name="com.android.launcher.permission.WRITE_SETTINGS_22"
        android:description="@string/permdesc_write_settings"
        android:label="@string/permlab_write_settings"
        android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
        android:protectionLevel="normal" />

相關推薦

android studio 匯入 Launcher2 模組,編譯執行

AS 版本:2.3.3 aosp 版本: 4.4 (已經編譯過) launcher 目錄: .../packages/apps/ 下的 Launcher2 資料夾 詳細步驟: 1. 在 AS 中 新建一個專案:LauncherTest 2.在 專案中 新增一個

使用idea匯入非maven專案編譯執行

1 匯入專案  (1) new -> project from exiting sources   (2)選擇要匯入的專案   (3)非maven專案選擇以eclipse方式匯入,一直點下一步就行  2 編譯  (1)右

完美解決 Android Studio 匯入工程, 成功編譯, 但是程式碼提示錯誤

在 github 上下載了開源的程式碼, 使用 Android Studio 匯入工程後, 執行編譯成功, 但是開啟程式碼檔案時, 發現裡面全是紅色提示, 都是些什麼類找不到, 無法匯入包。。。搞得我一頭霧水, github 上求助, Google 上搜索,

Android Studio匯入和刪除模組

Android Studio匯入和刪除模組 一、匯入Module模組 File --> New --> Import Module --> 彈出選擇本地模組對話方塊 --> 輸入本地模組路徑 錯誤提示: 1. Project already con

Android studio 匯入eclipse專案 執行時報錯

Error:Android Packager: [sport5] java.io.IOException: Cannot pack file E:\444\libs\production\sport5\sport5.unaligned.apk into itself 這幾天

如何配置android studio環境實現ionic的編譯執行與打包

1.配置android studio 環境; 1.1配置java環境 下載jdk,jre(jre好像是跟jdk一起的,jdk1.8.0_101,jre1.8.0_101) 參考文件:如何配置jdk,jre的參考文件 配置的環境變數:PATH(jre/b

Android Studio匯入專案執行出現大量警告,且報錯GC,解決辦法

問題描述:同事給了一個專案讓我執行,我開啟工程後,本地使用的gradle 3.3版本和com.android.tools.builld:gradle:2.3.2版本都要高於專案本身指定的gradle 2.14.1和2.2.3,使用本地自己的版本沒有去下載專案原來指定的版本,b

Android studio匯入專案卡住、匯入後目錄不正確且不能執行的解決辦法

AndroidStudio匯入專案一直卡在Building gradle project info,實際上是因為你匯入的這個專案使用的gradle與你已經擁有的gradle版本不一致,導致需要下載該專案需要的gradle版本,不知是被牆了還是什麼原因,反正就是會一直卡住,直至下載完成(如果能下載完成的話,

Android Studio匯入工程後不能編譯成功

Android Studio匯入老工程,會遇到編譯失敗的問題。 比如這次我就遇到了這樣的提示:Could not HEAD xxxx Received status code 500 from serv

Android Studio 匯入 Eclipse 的程式碼後,執行時中文顯示亂碼

本論壇將全面搬家到:http://www.cnblogs.com/91program,請大家以後來這裡看看。apply plugin: 'android' dependencies { compile fileTree(dir: 'libs', include: '

Android Studio 導入OpenCV 調試運行face-detection例子

pac oot tools property boolean adl cond dto rgb p { margin-bottom: 0.1in; direction: ltr; color: rgb(0, 0, 10); line-height: 120%; text-a

android studio生成aar包在其他工程引用aar包

file jar 源碼 tool details bsp pbo key com 1.aar包是android studio下打包android工程中src、res、lib後生成的aar文件,aar包導入其他android studio 工程後,其他工程可以方便引用源碼和資

關於Android Studio中點9圖的編譯錯誤問題

mbo 但是 留言 清晰 文件中 pan 不能 use 計算 Android中的點9圖想必大家都非常熟悉了,能夠指定背景圖片的縮放區域和文本內容的顯示區域,常見如QQ聊天界面的背景氣泡這種文本內容不固定並需要適配的應用場景。 這裏也給大家準備了一張圖,詳細介紹了一下“A

如何在ubuntu中寫一個簡單的C語言程式碼編譯執行

首先需要安裝一個編譯器 因為筆者也是剛剛開始學習ubuntu所以不知道各個編譯器之間的區別,筆者所用的是gcc就簡單介紹一下gcc的安裝方法吧。 方法一: 開啟控制檯輸入以下程式碼: sudo apt-get build-dep gcc; sudo apt-get bui

Android Studio 使用Lint檢查去除無用資原始檔

在專案中會經常有一些無用的程式碼和資源,要一個個去查詢刪除太麻煩了,今天我們就來看在Android Studio 使用Lint檢查並去除無用資原始檔。 一起來看看吧 方法一 1,選擇你的專案 2,點選AS上的Analyze選單按鈕,選擇Run Inspection by

Ubuntu下編輯編譯執行c++程式

一、使用vim編輯c++程式碼: vim hello.cpp 輸入如下程式碼: #include <iostream> using namespace std; int main() { cout<<"Hello world!"<<endl;

Android Studio 匯入vitamio注意事項

1.官方下載的例項裡包含了vitamio和vitamioSample,一個是開發工具包,一個是官方示例。 2.Android Studio通過import mudle來匯入vitamio開發包。 3.如果報了SDKVersion找不到的錯誤,那麼我們自己去配置vitamio目錄下面的grad

Android studio匯入3.0專案時候報錯

android studio 匯入專案時報錯 This Gradle plugin requires a newer IDE able to request IDE model level 3 報錯。 解決方法: (1): 升級android studio IDE的版本。 (2):在

Android studio匯入Netty(修改maven倉庫Url)

最近在接手一個Android開發專案,要求手機作為熱點,接入ARM裝置,作為Server通過TCP/IP協議與下位機Socket通訊,簡單通過Service實現了封裝Socket函式並保持後臺連線,但在收發資料時需要對接相應的協議,這一部分協議是由下位機決定的,裡面包含了一些結構體Struct和聯合

Android Studio 匯入OSChina客戶端

        從github上down下來OSChina的Android原始碼,感覺是一個很好的學習的參考,匯入eclipse很方便,記得把osc-android-app-appcompat-v7這個也作為oscandroida