请尝试以下方法:
创建一个HelloWorld应用程序.
将一条Log语句添加到onCreate的末尾:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Log.d("HelloWorldActivity.onCreate()", "setContentView() completed");
}
在Log语句上放置一个断点.
在模拟器中运行应用程序并记下它的工作原理并逐步查看Eclipse的LogCat窗口中的Logged条目.
将HelloWorldActivity更改为从ListActivity而不是Activity扩展.
public class HelloWorldActivity extends ListActivity {
我的问题不是为什么会失败.我的问题是,您将如何调试此故障?我在Eclipse Debug窗格中看到的只是一个RuntimeException.我看到LogCat有一堆消息,但是它很庞大,我已经搜索了它,但找不到任何表明错误的地方或我的代码中发生异常的地方.我找不到在RuntimeException或堆栈跟踪中显示消息的方法,以了解哪行代码启动了异常.
我假设必须有更好的方法来使用这些工具来查找错误,但我是新手,似乎无法找到更好的调试方法,除了将我编码的所有内容包装在try/catch中.我原本希望在抛出异常时生成的LogCat中找到一条消息.我希望Debug窗口允许您检查异常的内容.我不是说这种技术不存在,我说我很难搞清楚如何调试和询问存在哪些技术以及如何使用它们?
所以,简单地说:
欢迎提出多项建议和讨论.:)
我会包含我的LogCat内容,但它太大了,这是不合理的.你应该能够轻松地自己重现这个,所以我把它遗漏了.LogCat中的某些东西可能对我有所帮助,但是因为它甚至运行一个小程序它是如此之大,我需要提示在搜索API调用抛出的异常时如何搜索以及如何解释它.我看到其他帖子说明LogCat中应该有什么东西,虽然可能是真的,但我自己找不到任何东西.如果您认为某些内容应该在LogCat中,请自行运行测试并将这些行复制到我应该找到的响应中.
谢谢.
========
截至目前的摘要技术列表如下:
入侵技术:1.将Toast放置在您希望看到您已执行的代码位置.2.将try/catch放在您认为可能抛出异常的代码中.3.注释掉代码并重新编译和重新测试.
非侵入性技术:1.使用调试器.断点,变量检查...... 2.猴子压力测试仪.3.下载Android源库.4.使用LogCat过滤器查看是否列出了"引起的".
不清楚是否可用:1.调试Android库的版本,其中包含其他日志记录,断言或其他附加帮助.2.能够通过Debug窗格或其他技术检查Eclipse中的Exception.3.一种定义更全局的try/catch异常处理程序的方法.4.能够通过Android库源代码进行调试.
不可用:1.一种非侵入性的方式来查看异常的内容或异常发生的位置.
我试图读取文件夹中的文件,但是当我运行该程序时,它会抛出此异常.我也尝试过其他一些文件夹.它引发了同样的异常.
Exception in thread "main" java.io.FileNotFoundException: C:\backup (Access is denied)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(Unknown Source)
Run Code Online (Sandbox Code Playgroud) 我需要使用AND/OR运算符来休眠分离的条件查询.我想模拟SQL等效于:
Select * from myTable where city in ( X, Y ) OR city in (A,B);
Run Code Online (Sandbox Code Playgroud)
//注意我需要在这里使用多个'In'
如何创建citeria查询以使用'OR'运算符.
就像是
DetachedCriteria criteria = DetachedCriteria.forClass(
myClass.class)
.add(Property.forName("city").in(X,Y));
criteria.**Or**(add(Property.forName("city").in(X,Y));
Run Code Online (Sandbox Code Playgroud)
不幸的是,标准中没有OR方法,只在那里添加.
提前致谢
我正在尝试使用属性文件中的错误消息进行一些弹簧验证.但是我发现的示例似乎都是硬编码的值,或者从属性文件中获取但是使用验证器类并在那里检索它.
我的设置有点不同.我在我的请求映射中使用@Valid注释,而我的@Valid类使用@NotNull等.我已经看到一些人们做@NotNull的例子(message ="blablabla"); 但这也是硬编码的,我想将这些消息放在一个属性文件中,这样我就可以轻松地编辑它,这样我就可以在将来轻松实现i18n.
关于如何实现这一点的任何意见将不胜感激.
我将三个元素相互堆叠在一起。现在我希望将最里面的元素放置在其父元素后面,但仍位于其祖元素前面。我尝试了 z-index 设置的不同变体,但没有成功。
根据我对 z-index 的理解,应该使用的代码是:
<div style="width: 400px; height: 400px; background-color: purple; position: relative; z-index: 1;">
<div style="width: 200px; height: 200px; background-color: blue; position: relative; z-index: 1;">
<div style="width: 100px; height: 100px; background-color: green; position: relative; z-index: -1;"></div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
但事实并非如此。
有什么解决办法吗?
场景:我的.apk中有加密的mp3文件.需要解密并发送到MediaPlayer对象.
问题:在我读取文件并解密后,如何让MediaPlayer播放它们?
现在.MediaPlayer有4个版本的setDataSource().
setDataSource(String path)
setDataSource(FileDescriptor fd)
setDataSource(FileDescriptor fd, long offset, long length)
setDataSource(Context context, Uri uri)
Run Code Online (Sandbox Code Playgroud)
这些都不是理想的情况.猜猜理想是给MediaPlayer一个InputStream吗?
可能的解决方案:
有没有人有更好的解决方案?
我正在调用ajax函数,该函数返回带有数据列标签的数据集(响应).其中一个列标签会根据发起呼叫的位置而更改.
通常,如果列标签是硬编码的,则以下代码访问响应变量:
for (var i = 0; i < response.d.length; i++) {
data.setValue(i, 1, response.d[i].Emissions);
}
Run Code Online (Sandbox Code Playgroud)
但是,我需要能够使用自标签更改后传入的单独字符串变量来访问响应变量.以下是我做这件事的微弱尝试,但它没有用.这样做的正确语法是什么?
var columnLabel = 'Emissions';
for (var i = 0; i < response.d.length; i++) {
data.setValue(i, 1, response.d[i].columnLabel);
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试用PHP/FQL选择所有共同朋友的联系.使用我的UID(540个朋友),这意味着> 12,000个连接,其中> 6500个是唯一的.因此,此代码应返回所有连接,但Facebook显然对FQL查询有4999/5000行限制.
// select mutual unique friends
$unique_connections = $facebook->api_client->fql_query("
SELECT uid1, uid2 FROM friend
WHERE uid1 IN
(SELECT uid2 FROM friend WHERE uid1=$uid)
AND uid2 IN
(SELECT uid2 FROM friend WHERE uid1=$uid)
");
Run Code Online (Sandbox Code Playgroud)
我知道上面的数字,因为我写的原始代码循环通过我的朋友列表,并为每个代码发送一个getMutualFriend查询.
foreach ($friends as $key)
{
$mutual_friends = $facebook->api_client->friends_getMutualFriends($key);
foreach ($mutual_friends as $f_uid)
{
array_push($all_connections, array($key,$f_uid));
}
}
Run Code Online (Sandbox Code Playgroud)
当然,运行该脚本需要将近3分钟,而FQL查询将在5秒内返回.经过一个小时的搜索,我得出结论,解决这个问题的唯一方法是使用两种方法的混合.好吧,发布在这里.有关更好地编写此脚本并超过4999/5000行限制的任何想法吗?
这是一个fql_multiquery应该与上面相同.它也限于4999/5000.
$queries = '{
"user_friends":"SELECT uid2 FROM friend WHERE uid1 = '.$uid.'",
"mutual_friends":"SELECT uid1, uid2 FROM friend WHERE uid1 IN (SELECT uid2 FROM #user_friends) …Run Code Online (Sandbox Code Playgroud) 我收到此错误
Warning: include(../config.php) [function.include]: failed to open stream: No such file or directory in /home/soizastu/public_html/cms/happy-api/retrieve.php on line 2
Warning: include() [function.include]: Failed opening '../config.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/soizastu/public_html/cms/happy-api/retrieve.php on line 2
Warning: mysql_connect() [function.mysql-connect]: Access denied for user 'soizastu'@'localhost' (using password: NO) in /home/soizastu/public_html/cms/happy-api/retrieve.php on line 6
Error connecting to database.
Run Code Online (Sandbox Code Playgroud)
基本上在cms文件夹中是config.php我认为include "../config.php";会做的伎俩,但它看起来如此.
SSIS做了两件与处理平面文件有关的事情,这些事情特别令人沮丧,似乎应该有办法绕过它们,但我无法弄明白.如果您定义一个包含10列的平面文件,使用CRLF作为行结束标记分隔的制表符,这将完美适用于每行中恰好有10列的文件.这两个痛苦的场景是:
如果有人在任何地方提供了第11列的文件,那么如果SSIS完全忽略它,那将是很好的,因为你还没有定义它.它应该只读取你定义的10列,然后跳到行标记的末尾,但是相反的是将任何附加数据与第10列中的数据连接起来,然后将所有数据连接到第10列.真有点没用.我意识到这种情况发生是因为第10列的分隔符不是像所有其他分区一样的选项卡,而是CRLF,所以它只是将所有内容都抓到了CRLF,因此无需更换额外的选项卡.在我看来,这并不聪明.
如果有人提供的文件只有9列,那就更糟了.它会暂时忽略它意外发现的CRLF,并用下一行开头的列填充任何缺少的列!不聪明在这里是轻描淡写.谁会想要发生这种情况?此时文件的其余部分是垃圾.
无论出于何种原因,文件宽度的变化似乎都是不合理的(当然,只有行的末尾的变化才能被处理(x更少或更多的列),但看起来这样处理不好,除非我我错过了什么.
到目前为止,我们唯一的解决方案是将一行加载为一个巨型列(column0),然后使用脚本任务使用它找到的许多分隔符动态分割它.这很有效,除了它将行宽限制为4000个字符(一个unicode列的最大宽度).如果您需要导入更宽的行(例如,使用多个4000宽的列进行文本导入),则需要如上所述定义多个列,但是您需要每行需要严格的列数.
有没有解决这些限制的方法?