带有模块的应用程序,该模块包含与应用程序不同的targetSdkVersion

时间:2016-08-30 14:49:52

标签: android module dependencies

在我的应用程序中,我需要使用targetSdkVersion = 22执行一个函数,但是我希望我的应用程序有targetSdkVersion = 24.我的尝试创建了一个模块,在我添加为我的应用程序的依赖项后,这些模块具有targetSdkVersion = 22.问题是当我从我的模块运行该函数时,它以target = 24运行。

编辑:也许我可能解释得很糟糕。我想为所有sdk执行相同的功能,但是如果我将我的app targetSdkVersion设置为22,该功能才能正常运行。有一些方法可以做到这一点,而不创建一个目标= 22的secundary应用程序,并从我的主应用程序调用它?

(我需要targetSdkVersion = 22才能执行此行:Settings.System.putInt(getContentResolver(), "button_key_light", -1)如果我的应用的targetSdkVersion为< = 22;

,它在Android 6中效果很好

谢谢

2 个答案:

答案 0 :(得分:0)

您可以使用以下条件:

if(Build.VERSION.SDK_INT< = 22)

或者你也可以在函数开头使用这个anotation

@TargetApi(Build.VERSION_CODES.X)(其中X是您想要的版本的名称)

答案 1 :(得分:0)

  

在我的应用程序中,我需要使用targetSdkVersion = 22执行一个函数,但是我希望我的应用程序有targetSdkVersion = 24

抱歉,这是不可能的。 targetSdkVersion适用于整个应用。默认情况下,应用的targetSdkVersion会覆盖您在模块中提供的targetSdkVersion。您可以设置规则以使模块的targetSdkVersion成为使用的模块。但是,在任何一种情况下,结果值都用于整个应用程序,包括库模块。