2017-07-24 188 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權限模型,以便他們瞭解他們正在做出的權衡,特別是用戶仍然可以撤銷新設備上的權限。 –