小编rek*_*ire的帖子

在android项目和库中使用支持库(Android Studio)

我正在使用新的Android Studio,我正在寻找一种方法来使用来自多个项目的支持库.基本上我有一个项目,使用ActionBarSherlock这个项目需要支持库.所以我在这个问题中添加了一个引用.

现在我遇到的问题是我的主项目也使用了支持库,所以我在某种程度上包含了两次.如果我从其中一个项目中删除库,我会收到一些支持库相关类未知的错误,这对我来说很明显,但如果我在两个项目中都有引用,我将面临这个错误:

Android Dex: [ProjectName] UNEXPECTED TOP-LEVEL EXCEPTION:
Android Dex: [ProjectName] java.lang.IllegalArgumentException: already added: Landroid/support/v4/app/ShareCompat$ShareCompatImplJB;
Android Dex: [ProjectName] at com.android.dx.dex.file.ClassDefsSection.add(ClassDefsSection.java:123)
Android Dex: [ProjectName] at com.android.dx.dex.file.DexFile.add(DexFile.java:163)
Android Dex: [ProjectName] at com.android.dx.command.dexer.Main.processClass(Main.java:490)
Android Dex: [ProjectName] at com.android.dx.command.dexer.Main.processFileBytes(Main.java:459)
...
Run Code Online (Sandbox Code Playgroud)

知道如何解决这个问题吗?

android actionbarsherlock android-support-library android-studio

16
推荐指数
1
解决办法
9883
查看次数

如何学习Autotools的乐趣?

所以几年前我花了一些时间来讨价还价make,这得到了很大的回报.编写用于构建项目和自动执行任务的小makefile非常有趣且富有成效.

当然,缺点是我的makefile非常具体,特别是涉及平台和库位置时.

所以这就是人们告诉我"autotools to rescue!"的地方.当其他人这样做时,他们似乎肯定会做这个伎俩(我喜欢下载东西,跑步configure && make && sudo make install和观看它只是工作),但我无法绕过他们.

我看过一些configure.ac和Makefile.am文件,我只是不明白发生了什么.我不知道标识符的哪一部分是开发人员的选择,哪些部分对autotools有意义.我不确定我是否理解整个流程和重点Makefile.in.我想我只是打了一个从我习惯的系统(make)到达上面一层或两层的精神墙.

任何人都可以指向一个教程或书籍(最好不是一个过于干燥的),可以教我autotools的快乐吗?什么步骤,以及如何使用它们,我怎么能写我自己的configure.ac,并Makefile.am从头开始?告诉我如何有效并与他们玩得开心?

makefile autotools

15
推荐指数
2
解决办法
1103
查看次数

如何使用ADO.NET返回IEnumerable <>?

我一直在使用Dapper和我目前的项目,我将不得不使用ADO.NET.我的问题是如何使用ADO.NET返回IEnumerable?这是我使用Dapper的原因.有人可以帮我转换这个但是用ADO做同样的事吗?

public IEnumerable<Favorites> GetFavorites()
{
    using (SqlConnection sqlConnection = new SqlConnection(connString))
    {
        sqlConnection.Open();
        var work = sqlConnection.Query<Favorites>("Select * from favorites");
        return work;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# ado.net dapper

15
推荐指数
1
解决办法
5483
查看次数

从"设置"中读取字体大小

这个问题几乎是一个Android应用程序:如何读取设置下的字体大小?我读了CommonsWare的答案,指出要使用Settings.System.FONT_SCALE.所以我写了几行:

float scale = -66.6f;
try {
    scale = android.provider.Settings.System.getFloat(getContentResolver(),
                                    android.provider.Settings.System.FONT_SCALE);
} catch(SettingNotFoundException e) {
    Log.e(getClass().getSimpleName(), "Error: ", e);
}
Toast.makeText(this, "scale=" + scale, Toast.LENGTH_LONG).show();
Run Code Online (Sandbox Code Playgroud)

我的问题是我总是得到SettingNotFoundException我正在使用Android 4.2.2设备.顺便说一句,我的代码是在一个onCreate回调中Activity.

我也搜索了该问题并发现了大约3个使用相同代码的网站.是否需要一些特殊许可?我也尝试了许可android.permission.WRITE_SETTINGS但没有成功.

settings android android-permissions

15
推荐指数
2
解决办法
2万
查看次数

在SDK 8中使用Android MediaPlayer进行流式处理

SDK级别8(Froyo)引入了MediaPlayer连接到流媒体源的本机功能,如Shoutcast.以前的SDK版本能够执行变通办法,例如在设备上运行本地代理(请参阅NPR).

我采用与NPR相同的方法并使用StreamProxy.但是,NPR首先检查当前运行的SDK是否小于8.如果是,则使用代理.否则,它直接连接.

我的StreamProxy从Shoutcast服务器请求元数据,因此它不会简单地将数据从Shoutcast路由到我的客户端.相反,它会解析出元数据并相应地使用它,并且仅路由音乐数据.

当尝试在SDK级别8或更高级别使用StreamProxy时,MediaPlayer无法准备.我的StreamProxy接收连接并接受它,但在成功地将状态行和标题写入客户端之后,下一次写入产生java.net.SocketException: Connection reset by peer.这导致客户的媒体播放器抛出一个Error(1,-1007).

我试图弄清楚为什么MediaPlayer无法连接到我的本地代理.它应该与没有元数据的原始源连接相同,这确实有效.我通过我的代理(包括内容类型)转发来自外部源的所有标头.

我会继续研究它,但我觉得我已经走到了尽头.如果需要更多细节,请告诉我.

proxy android stream media-player android-2.2-froyo

14
推荐指数
1
解决办法
7553
查看次数

Mac OS X上的库的回滚兼容版本

所以,我喜欢我的Macbook,她爱我.我们有起伏,但在大多数情况下,我们的关系一直很强大.最近虽然我们打架了.它开始时就足够了.我曾要求她做更多,试图更具实验性.我们带来了诸如sse,快速数学和展开到卧室之类的东西,并编译了我们库的新版本.

它开始时很好.我们使用新库编译一些代码,测试新的水域.随着时间的推移,我们的表现随着夫妻飙升 她工作得更快,我认为一切都很好.然后事情变得更糟.我们带来了另一名球员.她的名字是Matlab.

我们开始为Matlab编译,

mex CC="gcc" CFLAGS="\$CFLAGS -msse -msse2 -msse3 -ffast-math -ftree-vectorize" LDFLAGS="\$LDFLAGS -msse2 -msse3 -ffast-math -ftree-vectorize" -I/usr/local/include -L/usr/local/lib -lsundials_cvode -lsundials_nvecserial -v -o kry_new.mexmaci64 mex_main.c
Run Code Online (Sandbox Code Playgroud)

编译和链接工作得很好.但后来麻烦开始了:

kry_new(param,init,0:60:240,abstol,rtol,1)
??? Invalid MEX-file
'/Users/Andrew/Documents/MATLAB/het_optim/kry_new.mexmaci64':
dlopen(/Users/Andrew/Documents/MATLAB/het_optim/kry_new.mexmaci64, 1):
Library not loaded: /usr/local/lib/libsundials_cvode.1.dylib
  Referenced from: /Users/Andrew/Documents/MATLAB/het_optim/kry_new.mexmaci64
  Reason: Incompatible library version: kry_new.mexmaci64 requires version
  2.0.0 or later, but libsundials_cvode.1.dylib provides version 1.0.0.
Run Code Online (Sandbox Code Playgroud)

Matlab觉得我们的实验已经走到了尽头.它们是完全不同的库版本.我不知道她在哪里得到这个想法.我做了一些调查:

$ otool -L kry_new.mexmaci64 
kry_new.mexmaci64:
    /usr/local/lib/libsundials_cvode.1.dylib (compatibility version 2.0.0, current version 2.0.0)
    @loader_path/libsundials_nvecserial.0.0.2.dylib (compatibility version 0.0.0, current version 0.0.2)
    @loader_path/libmx.dylib (compatibility version 0.0.0, current …
Run Code Online (Sandbox Code Playgroud)

unix version-control matlab symlink

14
推荐指数
1
解决办法
593
查看次数

含有位置的Google Maps 7.0.0的含义

起初我知道StackOverflow上有几个类似的问题.我使用geo方案来解决可由其他应用程序处理的点.

就像Android文档 的例子一样(顺便说一下它看起来已经过时了!)我尝试使用这样的东西:

geo:50.95144,6.98725?q=50.95144,6.98725%20(Disneyland)
Run Code Online (Sandbox Code Playgroud)

所以我得到一个意图选择器,我可以选择一个应用程序,向我展示Google Maps迪士尼乐园的标记.现在似乎安装了一个删除该支持的更新.我只是得到这个地方找不到的消息.

我试图理解定义'geo'URI Scheme 的RFC 5870.我不完全明白.根本不可能定义一个标签是正确的吗?

如何将位置现在链接到Google地图?

android google-maps geolocation geo-schema

14
推荐指数
1
解决办法
1万
查看次数

用doxygen记录:将细节放在最上面

我正在使用doxygen来获取Android项目的文档.我知道doxygen多年了.但是现在我遇到的问题是,我希望我的类的详细信息在javadoc中位于顶部而不是底部.

经过短暂的谷歌搜索,我找到了可以DETAILS_AT_TOP做我想要的选项,但不幸的是这个选项被删除了.所以新方法是使用所谓的DoxygenLayout.xml,但文档在哪里应该是这样的文件?在文档中只解释了一些属性.我可以根据需要修改原件在哪里DoxygenLayout.xml?

我也有同样的问题,HTML_FOOTER没有记录原始文件的样子.

documentation customization doxygen

14
推荐指数
2
解决办法
5114
查看次数

在C++中使用continue关键字的另一种方法

最近我们找到了一个"好方法",通过使用continue来注释掉代码行:

for(int i=0; i<MAX_NUM; i++){
  ....
  .... //--> about 30 lines of code
  continue;
  ....//--> there is about 30 lines of code after continue
  ....
}
Run Code Online (Sandbox Code Playgroud)

我问问为什么前面的开发人员将continue关键字放在密集循环中.最有可能的是他/她认为放置"继续"关键字而不是删除所有不需要的代码更容易......

通过查看以下场景,它引发了另一个问题:

情景A:

for(int i=0; i<MAX_NUM; i++){
  ....
  if(bFlag)
    continue;
  ....//--> there is about 100 lines of code after continue
  ....
}
Run Code Online (Sandbox Code Playgroud)

情景B:

for(int i=0; i<MAX_NUM; i++){
  ....
  if(!bFlag){
  ....//--> there is about 100 lines of code after continue
  ....
  }
}
Run Code Online (Sandbox Code Playgroud)

你觉得哪个最好?为什么?break关键字怎么样?

c++ visual-c++

13
推荐指数
2
解决办法
2187
查看次数

Apache 2 gzip json默认输出吗?

我正在使用这个PHP代码进行json输出.apache默认是gzip吗?或者,我该如何检查以确定?

header('Content-type: application/json');
header('Cache-Control: max-age=0,no-cache,no-store,post-check=0,pre-check=0');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
echo json_encode($response);
Run Code Online (Sandbox Code Playgroud)

php apache gzip

13
推荐指数
2
解决办法
1万
查看次数