1. 程式人生 > >Android Studio修改專案編譯版本

Android Studio修改專案編譯版本

在Android Studio中建立專案時在gradle中會自動引入

    compile 'com.android.support:appcompat-v7:24.0.0'

當引入appcompat-v7時,編譯版本至少要在21(5.0)以上時才可以通過。
但是有一些專案需要用到稍低版本的sdk,於是我在gradle中改低compile sdk version(eg:改到19)時,compile appcompat-v7會報錯,提示與compile sdk version不一致。
然後自己試著修改到一致的版本時,報錯會消失,但是會出一行新的提示:當min target version>=14且compile sdk version<=19時,這個包是不需要的,於是刪除這個compile,重新sync,這時會報出一些奇怪的樣式引用錯誤。
跳轉檢視詳情,發現是一些styles引用了appcompat的內容
在manifest檔案中有一句引用

android:theme="@style/AppTheme"

也就是theme

<resources>

<!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark"
>@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item>
</style> </resources>

這個theme是在values的styles檔案中繼承父theme,而這個父theme就是引用的appcompat包中的theme,於是我們把這個theme修改成系統自帶的theme,例如android:Theme.Light。然後刪掉之前生成的customize的內容,最好修改一下style的name屬性,與以前不同就可以

<resources>
<!-- Base application theme. -->
    <style name="BaseTheme" parent="android:Theme.Light">
<!-- Customize your theme here. -->
    </style>
</resources>

然後在manifest檔案中修改引用

android:theme="@style/BaseTheme"

同時要修改activity繼承,將預設繼承的AppCompatActivity修改為activity

public class MainActivity extends AppCompatActivity

改成

public class MainActivity extends Activity

這樣再clean一下,就可以編譯通過了。
=============================補充一下==========================
可以用較高版本的build tools去適配較低版本的compile sdk的,比如

    compileSdkVersion 19
    buildToolsVersion "24.0.0"

這都是沒有問題的