簡體   English   中英

支持舊版Android設備

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM