在AndroidStudio 1.3+中隐藏android.R资源;自动完成

在AndroidStudio 1.3+中隐藏android.R资源;自动完成,android,android-studio,autocomplete,Android,Android Studio,Autocomplete,是否可以将Android Studio配置为仅显示@drawable文件夹中的项目资源 我正在从事的项目是一个行业项目,很少需要我使用R资源 我认为您实际上无法做到这一点,只有库开发人员可以选择将资源隐藏在他们的aar发行版中 因此,您需要依赖库开发人员来为您做到这一点。幸运的是,最新的Android支持库应该已经为您完成了这项工作 库开发人员在其库中隐藏资源的方式是: 在与res相同级别上创建一个名为res public(名称不重要)的新文件夹,该文件夹的子文件夹名为values: 在该文件夹

是否可以将Android Studio配置为仅显示
@drawable
文件夹中的项目资源

我正在从事的项目是一个行业项目,很少需要我使用
R
资源


我认为您实际上无法做到这一点,只有库开发人员可以选择将资源隐藏在他们的
aar
发行版中

因此,您需要依赖库开发人员来为您做到这一点。幸运的是,最新的Android支持库应该已经为您完成了这项工作

库开发人员在其库中隐藏资源的方式是:

  • 在与
    res
    相同级别上创建一个名为
    res public
    (名称不重要)的新文件夹,该文件夹的子文件夹名为
    values
  • 在该文件夹中创建一个名为
    public.xml
    的新文件,在该文件中,您可以使用
    名称
    类型
    定义所有要公开的资源
  • 
    
  • 然后确保在
    build.gradle
    文件中引用此新文件夹:
  • android{
    编译DK21版
    BuildTools版本“21.1.2”
    源集{
    main.res.srcDirs'res','res public'
    }
    默认配置{
    ...
    }
    }
    
  • 确保您至少使用了Gradle插件的1.3版
  • buildscript{
    存储库{
    mavenCentral()
    }
    依赖关系{
    classpath'com.android.tools.build:gradle:1.3.0'
    }
    }
    
  • 将库编译成
    aar
    文件,并将其包含到项目中。现在只有
    btn\u登录
    资源可见。
    • 检查如何包含本地
      aar
      文件,这样您就可以进行测试,而无需推送到Maven repo

  • 查看AS的“代码完成”部分,我没有找到任何允许隐藏SDK资源并使用app/lib资源的设置:


    StefMa提到的最近实现的特性可能不会帮助您,因为它的工作方式是相反的:它允许库开发人员从aar包中隐藏一些资源,并仅显示资源的选定部分,即公共资源。Chris Banes在这项功能中做了一个很好的介绍。

    你可以这样做
    @package:drawable/filename
    它在devoleper.android网站中提到过:,我不知道它到底是如何实现的works@FouadWahabi我相信您的建议要求OP为每个自动完成键入
    @package:drawable/filename
    。我认为这并没有回答OP关于从自动完成列表中删除未使用的资源引用的问题。1.3似乎可以做到这一点。但我还没找到原因。看这里:这里:是的,看起来是这样的!由于这个原因,我现在编辑了问题标题。上面的解决方案对我不起作用。尽管如此,我仍然可以访问主应用程序模块Indeed中的私有资源,这只是将资源排除在自动完成之外。然而,如果你试图使用“隐藏”资源,Android Studio应该给你一个警告。请注意,名称空间很快就会出现在资源中,这将启用真正的私有资源:但我将在autocomplete中获取私有资源。看看这个。你是怎么做到的?它对我不起作用(Gradle插件:3.3.1)
    src
        main
             java
             res
             res-public
                 values