Android Studio修改專案編譯版本
阿新 • • 發佈:2019-02-12
在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"
這都是沒有問題的