【问题标题】:Defining permission in manifest from string file, android?从字符串文件定义清单中的权限,android?
【发布时间】:2018-07-30 06:55:45
【问题描述】:

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

 <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 标识符错误。 请不要给我直接在清单中添加权限而不是从字符串文件中选择的解决方案。

我该如何解决这个问题??

【问题讨论】:

标签: android manifest


【解决方案1】:

您不能在&lt;uses-permission&gt; 的android:name 字段中使用字符串资源。您将不得不使用预定义的字符串。有关更多详细信息,请访问此链接:-

Manifest Permission

【讨论】:

  • 字符串资源可用于权限
  • 是的,但不在&lt;uses-permission&gt; 的android:name 字段中。查看上面的链接
【解决方案2】:

试试这个快速修复

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

【讨论】:

    【解决方案3】:

    插入

    <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" />
    

    【讨论】:

      【解决方案4】:

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

      Set string from gradle in manefesst

      解决方案代码,在build gradle,->android->defaultConfig

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

      并且在清单文件中

      <uses-permission android:name="${gcmPermission}" />
      
      <permission
          android:name="${gcmPermission}"
          android:protectionLevel="signature" />
      

      【讨论】:

        猜你喜欢
        • 2012-05-28
        • 2012-11-13
        • 1970-01-01
        • 1970-01-01
        • 2019-10-28
        • 1970-01-01
        • 2017-09-03
        • 1970-01-01
        相关资源
        最近更新 更多