我正在尝试减少我的Android SDK版本从25到22.原因是当我运行程序时,Android会询问用户是否可以记录它们。这并不理想,因为用户会害怕使用它。
我已经读过,使用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'.
此错误出现在构建文件debug / values-v23 / values-v23.xml和v24中。
我已将compileSdkVersion降级为22,将目标sdk版本降级为22.0.1。安装22.0.1构建工具并将com.android.tools.build:gradle降级到2.2.3。到目前为止,我所尝试的一切仍然导致了这些错误,任何帮助都将受到赞赏。
我也在问这个问题,发现是否有办法允许应用使用麦克风而不需要Record_Audio。此外,如果有一种方法可以在使用不同的语言时提出此许可,那也是更可取的。
答案 0 :(得分:0)
更改操作系统版本(目标API)时,需要更改支持库的版本以匹配API版本。对于以API 22为目标的实例,支持库也必须是版本22。
答案 1 :(得分:0)
您不应该降低目标SDK版本以避免需要在运行时请求权限。
由于以下几个原因,这是个坏主意:
首先,这是一个用户敌对的决定。 Marshmallow(API 23)中添加了运行时权限,以便用户更好地控制应用程序如何使用其设备和访问个人信息。它可以帮助用户了解您如何使用这些权限以及您需要它们的原因。
其次,通过使用较低目标SDK版本,您可以锁定自Marshmallow以来引入的任何新的Android API和平台功能。 Marshmallow于2015年发布,因此您已经落后2年,这一差距将继续增长。
最后,无论您定位的API级别如何,任何运行Marshmallow或更新版本的用户都可以撤消此应用程序的权限。
话虽这么说,如果你降低目标/编译SDK版本,你还需要更改支持库版本。较新版本的支持库使用较新的API,因此与较旧的SDK版本不兼容。