请问,您知道在合并多个资产文件夹之前或合并期间如何从Android项目资产文件夹中排除某些文件的方法吗?
例如:
android {
sourceSets {
main {
assets.srcDirs = [fileTree(dir: 'assets1', exclude: 'myfile.txt'), 'assets2'] // does not work
assets.exclude 'assets1/myfile.txt' // does not work
assets.exclude '**/*.txt' // does not work
assets.exclude '*.txt' // does not work
}
}
packagingOptions {
exclude 'assets1/myfile.txt' // does not work
exclude '**/*.txt' // does not work
exclude '*.txt' // does not work either
}
aaptOptions {
ignoreAssetsPattern "myfile.txt" // does not work
}
}
Run Code Online (Sandbox Code Playgroud) 我在build.gradle中有几种构建类型:
signingConfigs {
debug {
storeFile file("debug.keystore")
storePassword = "android"
keyAlias = "androiddebugkey"
keyPassword = "android"
}
unsigned{
storePassword = ""
keyAlias = ""
keyPassword = ""
}
release {
storeFile file("release.keystore")
keyAlias "alias"
storePassword "foo"
keyPassword "bar"
}
}
buildTypes {
release {
debuggable false
jniDebugBuild false
signingConfig signingConfigs.release
}
unsigned {
debuggable false
jniDebugBuild false
signingConfig signingConfigs.unsigned
}
debug {
debuggable true
jniDebugBuild true
signingConfig signingConfigs.debug
}
}
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,但问题是我不知道(我没有找到很多搜索后)如何从Android Studio或命令行构建单一构建类型的方法.
你知道吗?
我正在尝试使用纯STL实现LFU(最不常用)缓存(我不想使用Boost!).
要求是:
Key类似的关联访问任何元素std::map.UsesCount属性).UsesCount任何项目的priority().问题是:
std::vector的物品(集装箱Key,Value,UsesCount),std::map迭代器来为关联访问和向量的容器std::make_heap,std::push_heap并std::pop_heap为载体中的优先级队列的实现,在地图的itertors不是堆操作才有效.std::list(或std::map)代替std::vector以前的配置,std::make_heap则无法编译等因为它们的迭代器不支持aritmetic.std::priority_queue,我没有能力更新项目优先级.问题是:
感谢您的见解.
我正在为C++中的内存有限的嵌入式系统(Tegra 2)开发应用程序.我处理的NULL结果new和new[]整个有时会发生,但应用程序能够处理这个代码.
问题是如果内存完全耗尽,系统会通过SIGKILL杀死进程.我可以告诉你new应该只返回NULL而不是杀死进程吗?
我正在尝试从资源中加载到WebView的JavaScript代码中播放声音:
WebView web_view = (WebView) findViewById(R.id.web_view);
web_view.getSettings().setJavaScriptEnabled(true);
web_view.setWebChromeClient(new WebChromeClient());
web_view.loadUrl("file:///assets/www/index.html");
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法的所有组合,如何使用OGG,MP3和WAV文件播放音频,JavaSrcipt代码位于assets/www/js/play.js:
audio = new Audio("../audio/sound.mp3");
audio.load();
audio.play();
audio = new Audio("./audio/sound.mp3");
audio.load();
audio.play();
audio = new Audio("audio/sound.mp3");
audio.load();
audio.play();
audio = new Audio("file:///android_asset/www/audio/sound.mp3");
audio.load();
audio.play();
audio = new Audio();
audio.src = document.getElementById("audio_tag").src;
audio.load();
audio.play();
Run Code Online (Sandbox Code Playgroud)
audio_tag的位置<audio id="audio_tag" src="audio/sound.mp3" preload="auto"></audio>,也尝试使用路径和格式的所有组合.
但是声音没有播放,只知道可能出现的错误是遵循一般错误:
E/MediaPlayer(1530):错误(1,-2147483648)
从这条信息消息中猜测,音频文件的路径应该适用于第二个第五个案例:
I/StagefrightPlayer(33): setDataSource('file:///android_asset/www/audio/sound.mp3');
Run Code Online (Sandbox Code Playgroud)
虽然这个问题可能被认为是Android WebView使用javascript播放音频的重复, 但答案无论如何都没有帮助,因为永远不会调用shouldOverrideUrlLoading,我试图在这里更准确地指出这个问题.
你有什么可能是错的线索或如何找出它是什么?
谢谢.
编辑:使用Android 2.3在Galaxy Gio中测试给出了不同的错误集:
02-06 17:15:13.829:V/PlayerDriver(95):AddToScheduler 02-06 17:15:13.829:V/PlayerDriver(95):PendForExec 02-06 17:15:13.829:V/PlayerDriver(95): OsclActiveScheduler :: Current 02-06 17:15:13.829:V/PlayerDriver(95):StartScheduler 02-06 17:15:13.829:V/PVPlayer(95):send PLAYER_SETUP 02-06 …