定义清单文件中的权限,Android?

时间:2018-07-30 06:55:46

标签: android manifest

在我的应用中,我正在使用GCM进行推送通知,我们必须在我从字符串xml中获取其值的清单中设置2个权限标签

 <uses-permission android:name="@string/app_gcm_permission" />

<permission
    android:name="@string/app_gcm_permission"
    android:protectionLevel="signature" />

在字符串文件中

<string name="app_gcm_permission">com.lift.chi.permission.C2D_MESSAGE</string>

gradle构建成功,当我尝试运行该应用程序时,出现以下错误

error: invalid Java identifier '@string/app_gcm_permission'.
Message{kind=ERROR, text=error: invalid Java identifier '@string/app_gcm_permission'

之所以会这样,是因为android studio内部将点转换为下划线,从而引发无效的Java标识符错误。 请不要给我提供直接在清单中添加权限而不是从字符串文件中选择权限的解决方案。

我该如何解决?

4 个答案:

答案 0 :(得分:1)

您不能在android:name的{​​{1}}字段中使用字符串资源。您将必须使用预定义的字符串。有关更多详细信息,请访问此链接:-

Manifest Permission

答案 1 :(得分:0)

尝试此快速修复

 <permission
    android:name="com.lift.chi.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

答案 2 :(得分:0)

装有

<uses-permission android:name="@string/app_gcm_permission" />

<permission
    android:name="@string/app_gcm_permission"
    android:protectionLevel="signature" />

做到

<uses-permission android:name="com.lift.chi.permission.C2D_MESSAGE" />

<permission
    android:name="com.lift.chi.permission.C2D_MESSAGE"
    android:protectionLevel="signature" />

答案 3 :(得分:0)

我能够根据这个问题的答案来解决

Set string from gradle in manefesst

构建代码中的解决方案代码-> android-> defaultConfig

from parent_folder.

在清单文件中

manifestPlaceholders = [ gcmPermission:"com.lift.chi.permission.C2D_MESSAGE"]