[英]supporting for older version android devices
我開發的應用程序在運行Marshmallow的設備上工作正常,現在當我嘗試在早期版本的android(V 21)上運行它時,它會出現以下錯誤
java.lang.NoSuchMethodError: No Virtual methold getColor(ILandroid/content/res/Resources$Theme;)
in class Landroid/content/res/Resources; or its super classes`
在gradle中,我包括:
compileSdkVersion 25
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.veggies.test"
minSdkVersion 21
targetSdkVersion 25
versionName '1.1'
`
我還將資源文件(例如colors.xml等)從values
復制到values-v21
-v21
好的。問題是這個函數getColor()已經包含在api 23之后所以它顯示錯誤。你將不得不添加檢查更低的版本
int color;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
color = ContextCompat.getColor(this, R.color.app_theme_color);
} else {
color = getResources().getColor(R.color.app_theme_color);
}
這是你的問題。
minSdkVersion 21
targetSdkVersion 25
你所說的是,這個應用程序只運行在大於或等於21的設備上,最好是我的目標設備api級別為25.更改min = 15並且目標相同。
然后同步,清理並再次運行。 *在api之后引入了getColors,這是主要問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.