如何使用android gradle resConfigs只打包默认语言

时间:2015-12-15 17:46:25

标签: android build.gradle

我知道如何使用resConfigs限制语言支持:

defaultConfig {
    ...
    resConfig "en"
}

但是如何限制语言只支持默认语言(在values /文件夹中)?有没有办法避免打包存储在values-xx / folders中的任何语言资源?

由于

2 个答案:

答案 0 :(得分:0)

您可以通过在过滤器字段上指定排除项来实现此目的:

var refreshtimerA;

function clearAllPaneA() {
  topleftmapbox.setLayoutProperty('overlay_KEWX_L2_REFLECTIVITY', 'visibility', 'none');
  topleftmapbox.setLayoutProperty('overlay_GOES_16_CH02', 'visibility', 'none');
  document.getElementById("reflectivityBar").style.visibility = "visible";
}

function addKEWX_REFLECTIVITY_toA(){
  clearAllPaneA();
  refreshtimerA = setInterval(refreshKEWXL2REFLECTIVITY_A, 5000); // 5 second constantly refreshes (works as the code is)
  topleftmapbox.setLayoutProperty('overlay_KEWX_L2_REFLECTIVITY', 'visibility', 'visible');
  document.getElementById("ReflectivityBar").style.visibility = "visible";


  function refreshKEWXL2REFLECTIVITY_A() {
    topleftmapbox.removeLayer('overlay_KEWX_L2_REFLECTIVITY');
    topleftmapbox.removeSource('source_KEWX_L2_REFLECTIVITY');

    topleftmapbox.addSource("source_KEWX_L2_REFLECTIVITY", {
      "type": "image",
      "url": "images/KEWX_L2_REFLECTIVITY.gif",
      "coordinates": [
        [-103.009641, 33.911],  
        [-94.009641, 33.911],   
        [-94.009641, 24.911], 
        [-103.009641, 24.911] 
      ]
    })

    var layers = topleftmapbox.getStyle().layers;
    // Find the index of the first symbol layer in the map style
    var firstSymbolId;
    for (var i = 0; i < layers.length; i++) {
      if (layers[i].type === 'symbol') {
        firstSymbolId = layers[i].id;
        break;
      }
    }

    topleftmapbox.addLayer({
      "id": "overlay_KEWX_L2_REFLECTIVITY",
      "source": "source_KEWX_L2_REFLECTIVITY",
      "type": "raster",
      "raster-opacity": 0.5,
      "layout": {"visibility": "visible"},
    }, firstSymbolId)
  }
}

function addGOES_16_toA(){
  clearInterval(refreshtimerA); // does not work
  clearAllPaneA();
  topleftmapbox.setLayoutProperty('overlay_GOES_16_CH02', 'visibility', 'visible');
}

答案 1 :(得分:0)

可能应该配置(通过Gradle 6.1.1测试):

android {
    sourceSets {
        main {
            res {
                exclude "**/values-de/*.xml"
                exclude "**/values-he/*.xml"
            }
        }
    }
}

每个语言标签都需要一行,因为所有其他目录都与values-*匹配。

并检查实际打包了哪些资源:

sourceSets.main.res.getExcludes().each { println "Found exclude: $it" }
sourceSets.main.res.sourceFiles.each { println "File in source set: " + it }

对于常规的Java项目,它应该是目录resources,而不是Android专用的res