2017-07-24 260 views
-1

我正在尝试减少我的Android SDK版本从25到22.原因是,当我运行程序Android询问用户是否可以记录它们时。这并不理想,因为用户会害怕使用它。降级到Android SDK版本22

  • 我已经试过麦克风权限,但我已阅读,此权限不起作用,由于它是一个权限组。

我读过使用SDK 22将允许用户同意Record_Audio应用程序安装。 这里的问题是,当我做一些错误的出现,包括:

Error:(4) Error retrieving parent for item: No resource found that matches the given name 'android:TextAppearance.Material.Widget.Button.Inverse'. 

这个错误出现内部构建文件调试/值-V23 /价值观v23.xml和V24。

我已将compileSdkVersion降级为22,目标sdk版本为22.0.1。安装22.0.1构建工具并将com.android.tools.build:gradle降级到2.2.3。到目前为止,我所尝试过的所有东西仍然导致了这些错误,任何帮助将不胜感激。

我也在问这个问题,以发现是否有方法允许应用程序使用麦克风而不需要Record_Audio。此外,如果在使用不同的语言时有办法获得此许可,那也是可取的。

+0

“原因是,当我运行程序Android询问用户是否可以记录它们时 - 总是提示用户输入权限,因此用户将被提示输入”RECORD_AUDIO“权限。区别仅在于时间。除此之外,清理您的项目(例如,Android Studio主菜单中的Build> Clean Project)。 – CommonsWare

+0

可能的重复[错误检索项目的父项:找不到与升级到AppCompat v23后指定名称匹配的资源](https://stackoverflow.com/questions/32075498/error-retrieving-parent-for-item-no-资源找到那匹配给定的名称) – Zoe

回答

0

当您更改操作系统版本(目标API)时,您需要更改支持库的版本以匹配API版本。对于您定位API 22的实例,支持库也必须是版本22。

+0

我已将支持库依赖项更改为版本22,并且错误仍然存​​在。我也尝试清理这个项目。 – stringVector

+0

如何添加清单和build.gradle?猜测问题是什么**是不可能的。 – Zoe

+0

我同意,我会试试这个。 – stringVector

0

您不应该降低您的目标SDK版本以避免需要在运行时请求权限。

这是有几个原因是一个坏主意:

  • 首先,这是一个用户敌对的决定。运行时权限已添加到棉花糖(API 23)中,以便用户更好地控制应用程序使用其设备和访问个人信息的方式。它可以帮助用户了解您如何使用这些权限以及为什么需要这些权限。其次,通过使用较低的目标SDK版本,您可以锁定自Marshmallow以后推出的任何新的Android API和平台功能。棉花糖于2015年发布,所以你已经落后了2年,这个差距将会持续增长。

  • 最后,任何运行Marshmallow或更新版本的用户都可以撤销此应用程序的权限,无论您的目标API级别如何。

这就是说,如果您降低目标/编译SDK版本,您还需要更改支持库版本。较新版本的支持库使用较新的API,因此与较旧的SDK版本不兼容。

+0

感谢您的快速响应。这个应用程序有很少的功能,将来可能不会改变。此外,解决这个问题是我们客户的一项要求。当你指的是“支持库”时,你指的是com.android.support:support-core-utils? 我在版本22.0.0中添加了此依赖项,但没有任何更改。 – stringVector

+0

它只会帮助用户了解应用程序在解释时如何使用权限。即使应用没有针对API 23,权限也可以被撤消(值得注意) – Zoe

+0

@stringVector需要更新以'com.android.support'开头的任何依赖项。您应该确保您的公司努力向您的客户介绍新的Android权限模型,以便他们了解他们正在做出的权衡,特别是用户仍然可以撤销新设备上的权限。 –