小编Roy*_*ley的帖子

.this.getClass()getFields()的长度.; 总是返回0

我试图获取特定类中的字段数.但是,我使用的技术不起作用,并始终返回0:

this.getClass().getFields().length;
Run Code Online (Sandbox Code Playgroud)

如何获取特定类的字段数?

java reflection field count

10
推荐指数
1
解决办法
8816
查看次数

android如何通过列名获取sqlite数据

是否可以通过列名而不是sqlite中的索引来获取列数据?我不想依赖列的特定顺序.如果是这样,语法是什么?

sqlite android

9
推荐指数
1
解决办法
8283
查看次数

Make找不到tools.jar

运行Ubuntu 12.04

我已添加到PATH: /home/jeffrey/jdk1.6.0_43/lib

我正在尝试使用Make从源代码构建:

make -j16
Run Code Online (Sandbox Code Playgroud)

但遇到错误:

build/core/config.mk:268: *** Error: could not find jdk tools.jar, please install JDK6, which you can download from java.sun.com.  Stop.
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我解释为什么Make找不到tools.jar

编辑

JAVA_HOME=/home/jeffrey/jdk1.6.0_43/bin/java
Run Code Online (Sandbox Code Playgroud)

通过env在shell中输入命令来确定.此外,这是为所有用户设置的etc/profile

另外:

jeffrey@jeffrey-Satellite-M645:~/WORKING_DIRECTORY$ java -version
java version "1.6.0_43"
Java(TM) SE Runtime Environment (build 1.6.0_43-b01)
Java HotSpot(TM) 64-Bit Server VM (build 20.14-b01, mixed mode)
jeffrey@jeffrey-Satellite-M645:~/WORKING_DIRECTORY$ 
Run Code Online (Sandbox Code Playgroud)

java makefile path

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

应用程序如何冻结Android操作系统

我正在开发一个导致操作系统冻结的Android应用程序.

我的问题很简单,但经过漫长的搜索,我已经没有接近答案了.

问题是,沙盒的应用程序怎么能导致整个Android操作系统(4.0.4,4.1.1,4.1.2)冻结?

具体来说,整个操作系统冻结.没有logcat,没有adb,没有!它像操作系统一样可以冻结.该设备是三星Galaxy Tab 2.该应用程序使用usb-serial-for-android项目中UsbManager的库和库.虽然库可能使用NDK,但我的应用程序却没有.本质上,应用程序与专业板串行通信,接收数据和发送串行命令.这是在以这种方式处理的工作线程上完成的:

try {

        thread.interrupt();
        thread.join();          
        while(thread.getState() != Thread.State.TERMINATED){
              // wait until thread finishes
        }

} catch (InterruptedException e) {
       e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)

一切正常,直到冻结发生 - 当我断开USB电缆或指示库对象断开连接时.无论哪种方式,整个操作系统都会变得不稳定并立即冻结或再次连接USB(板或计算机).我已将此冻结问题发布到usb-serial-for-android项目但尚未收到任何评论.我相信我在脱离usb时遵循了正确的协议.

我知道很多事情都可能出错 - 我的应用程序可以崩溃等.人.但是沙盒应用程序又是如何使操作系统崩溃的 - 如果能够做到这一点,它似乎并不是非常沙盒化的.

UPDATE

我经过多次实验后发现,通过删除thread.interrupt();它的工作线而不会崩溃应用程序或冻结操作系统.如果在没有先拆卸USB的情况下拔掉USB,它仍会冻结操作系统.

我仍然希望了解沙盒应用程序如何冻结整个操作系统.这里有评论回避答案,但不仅仅是答案.

android freeze

9
推荐指数
1
解决办法
3068
查看次数

Hashmap get返回null

我有两个Hashmaps

HashMap<Integer, Integer> inventoryRequirements = new HashMap<Integer, Integer>();
HashMap<Integer, Integer> inventory = new HashMap<Integer, Integer>();
Run Code Online (Sandbox Code Playgroud)

我有一个循环检查当前并添加到它:

for(Item item : items){
    int currentRequirement = 0;
    currentRequirement = inventoryRequirements.get(item.get_id());
    inventoryRequirements.put(item.get_id(), currentRequirement++);         
}
Run Code Online (Sandbox Code Playgroud)

我有另一个循环来检查库存并添加到它:

for(Item item : items){
    int currentInventory = 0;
    // this next line returns null
    currentInventory = inventory.get(item.get_id());
    inventory.put(item.get_id(), currentInventory++);           
}
Run Code Online (Sandbox Code Playgroud)

第一个工作正常,但第二个工作并返回null.我不明白为什么第二个不起作用.两者最初都处于代码示例中描述的相同状态.

编辑

正如你在这看到的那样,两个HM就会填充 - 真的!我知道这可能很难相信,但第一个有效,第二个没有.

java hashmap

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

如何枚举bundle的键值对

有没有人知道如何在不事先知道所有密钥的情况下枚举捆绑的所有键值对?

android bundle enumeration

7
推荐指数
1
解决办法
2917
查看次数

多次接收相同的意图广播,但只发送一次

我的意图是在某种条件下发送的.日志证明它仅发送ONCE,但接收器正在接收它多次毫秒.

10-01 10:09:59.201: I/System.out(13543): SENDER CHECKPOINT  
10-01 10:09:59.211: I/System.out(13543): RECEIVER CHECKPOINT 
10-01 10:09:59.291: I/System.out(13543): RECEIVER CHECKPOINT 
Run Code Online (Sandbox Code Playgroud)

我已经确认只有一个广播接收器注册,并且只有一个动作过滤器与注册的BR一起使用.它仅用于单个活动,其中在另一个线程中运行的服务广播intent.同样,日志证实了ONE广播和多个收据.更重要的是,额外信息在回显收据中为空.

怎么会这样?操作系统是否有可能回应它?

发送广播的代码:

private void sendBroadcast(boolean status, String message, String action){
     System.out.println("SENDER CHECKPOINT");

     Intent intent = new Intent(action);
     Bundle bundle = new Bundle();
     bundle.putBoolean("status", status);
     bundle.putString("message", message);
     intent.putExtras(bundle);
     sendBroadcast(intent);

}
Run Code Online (Sandbox Code Playgroud)

接收广播的代码:

private class displayUpdate extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) { 
            System.out.println("RECEIVER CHECKPOINT");


    };
}
Run Code Online (Sandbox Code Playgroud)

注册:

@Override
public void onResume() {
    super.onResume();

    try {
        // just in case onResume is …
Run Code Online (Sandbox Code Playgroud)

android broadcastreceiver android-intent

6
推荐指数
0
解决办法
2523
查看次数

如何使用DataTables fnDestroy方法

我正在使用jQuery的DataTables插件,但在尝试使用fnDestroy方法时不断收到以下错误:

Undefined
Run Code Online (Sandbox Code Playgroud)

我尝试过使用以下所有变种:

1)

 $('#data').dataTable().fnDestroy();
Run Code Online (Sandbox Code Playgroud)

2)

var dt = $('#data').dataTable();
dt.fnDestroy();
Run Code Online (Sandbox Code Playgroud)

3)

var data = document.getElementById('data');
data.fnDestroy();
Run Code Online (Sandbox Code Playgroud)

'data'对象存在 - HTML如下:

<div class="resultset">
     <table class="display" id="data">              
         <tbody>

         </tbody>
      </table>  
</div>
Run Code Online (Sandbox Code Playgroud)

DataTable使用Javascript构建(此处未显示),但基础对象是硬编码的.

API文档显示第二种方法应该有效:

$(document).ready(function() {
  // This example is fairly pointless in reality, but shows how fnDestroy can be used
  var oTable = $('#example').dataTable();
  oTable.fnDestroy();
} );
Run Code Online (Sandbox Code Playgroud)

编辑

DataTable显示正常,否则效果很好.当我尝试执行此功能时出现问题.

undefined datatables

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

解密Crypto-JS提供数字十六进制输出而不是原始明文字符串

我使用来自Google代码中Crypto-JS源站点的示例组合了一个简单的测试:

在页眉中:

<script src="http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js"></script>
Run Code Online (Sandbox Code Playgroud)

在Javascript函数中:

var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase");

alert('encrypted: '+encrypted+'  decrypted: '+decrypted);
Run Code Online (Sandbox Code Playgroud)

但输出是:

encrypted: U2FsdGVkX19hsNqFBS5xcUoVBCu/hPHepEwZchqnUVU=
decrypted: 4d657373616765
Run Code Online (Sandbox Code Playgroud)

解密输出的图像

我错过了什么?

javascript cryptojs

5
推荐指数
1
解决办法
1183
查看次数

未找到 Java 结果集列“&lt;column_name&gt;”

我有一个 ResultSet 我从包含相关列的数据库中提取。我知道这一点,因为当我遍历记录时,我也会遍历列:

ResultSetMetaData rsmd = rs.getMetaData();
int numColumns = rsmd.getColumnCount();

try {

    while(rs.next()) {      

        JSONObject obj = new JSONObject();                          
        for (int i=1; i<numColumns+1; i++) {                    
            String column_name = rsmd.getColumnName(i);
            System.out.println(Time.formatDate(System.currentTimeMillis(),  true)+" - [ResultSetConverter.convert] column_name ["+column_name+"]");

            ...

            // line where exception is thrown
            obj.put(column_name, rs.getString(column_name)+"");

         }

    }

} catch (Exception e) {
    System.out.println(Time.formatDate(System.currentTimeMillis(),  true)+" - [ResultSetConverter.convert] Exception: "+e.getMessage());            
}
Run Code Online (Sandbox Code Playgroud)

这样做时,我将列名打印到控制台以验证是否存在:

4/1/2015 01:18 PM - [ResultSetConverter.convert] column_name [_id]
4/1/2015 01:18 PM - [ResultSetConverter.convert] column_name [image]
4/1/2015 01:18 PM - [ResultSetConverter.convert] column_name …
Run Code Online (Sandbox Code Playgroud)

java exception resultset

5
推荐指数
1
解决办法
5554
查看次数