我见过很多使用自定义TypeAdapter的简单示例.最有帮助的是Class TypeAdapter<T>.但这还没有回答我的问题.
我想自定义对象中单个字段的序列化,让默认的Gson机制处理其余的事情.
出于讨论目的,我们可以将此类定义用作我希望序列化的对象的类.我想让Gson序列化前两个类成员以及基类的所有公开成员,并且我想为下面显示的第三个和最后一个类成员进行自定义序列化.
public class MyClass extends SomeClass {
@Expose private HashMap<String, MyObject1> lists;
@Expose private HashMap<String, MyObject2> sources;
private LinkedHashMap<String, SomeClass> customSerializeThis;
[snip]
}
Run Code Online (Sandbox Code Playgroud) 我正在运行Ubuntu 10.10 64位.我安装了ia32-libs以及Android Debug Bridge版本1.0.26.
我的问题:
adb devices>>> ???????????? 没有权限sudo adb devices >>>> sudo:adb:命令未找到adb shell >>>错误:设备权限不足我想这些都是相关的.这是相关信息.
$ echo $PATH
/home/me/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/opt/android-sdk-linux_x86/tools:/opt/android-sdk-linux_x86/platform-tools
$ which adb
/opt/android-sdk-linux_x86/platform-tools/adb
$ adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
???????????? no permissions
$ sudo adb devices
sudo: adb: command not found
$ adb shell
error: insufficient permissions for device
Run Code Online (Sandbox Code Playgroud)
我使用运行CM6.1的根管理Moto Droid和运行基于CM7的ROM的根G-Tab获得相同的结果.
我查看了以下相关帖子:
我尝试了大多数(不是全部)建议,但我无法解决我的问题.我没试过的东西似乎不合适.我会感谢一些提示,我会继续排除故障.
我没有尝试的一件事是编辑/etc/udev/rules.d/70-android.rules.这可能是问题吗?我看不出这会导致"sudo:adb:command not …
我的问题几乎与这个问题相同.我尝试了那些解决方案而没有用.但我使用的是不同的Android x86图像.我正在使用ICS(4.0-RC1)asus_laptop图像.(我之前尝试过不同的图片,无法安装.)
我在Kubuntu 12.04上安装了VirtualBox 4.1.12.我按照这些步骤在我的VM中安装了android-x86-4.0-RC1-asus_laptop.iso映像.除了网络之外,它启动并正常工作.
netcfg除了lo(127.0.0.1)之外,Alt-F1 没有显示任何接口.应该可用的eth0未显示.这阻止了我在这里尝试解决方案.
新的参考资料我正在检查:
我刚读了这个相关的答案:
如何将数字转换为字符串? - Shopify Design - 电子商务大学
要将字符串转换为数字,只需将0添加到变量:
{%assign variablename = variablename | 加:0%}
不是超级优雅,但它的作品!
不优雅与否,那里给出的答案对我不起作用.这样做的正确方法是什么?
Liquid博士是否真的缺少这样的基本答案,还是我找不到合适的地方?
我更愿意使用openjdk-6-jdk(版本6b20-1.9.1-1ubuntu3).但我刚刚开始安装Android SDK,所以如果真的需要Sun(Oracle)Java,我想现在是时候安装了它.有什么建议?
我在IPython中做了一些非常简单的PySide(和PyQt)教程.一个教程只是创建一个带有一些滑块的窗口来演示插槽和信号.
当我关闭正在运行的演示应用程序的窗口时,我看到此错误:
An exception has occurred, use %tb to see the full traceback.
SystemExit: 0
To exit: use 'exit', 'quit', or Ctrl-D.
Run Code Online (Sandbox Code Playgroud)
所以我运行%tb并得到这个:
SystemExit Traceback (most recent call last)
/Workspaces/scratch/<ipython-input-1-88966dcfb499> in <module>()
33
34 if __name__ == "__main__":
---> 35 main()
/Workspaces/scratch/<ipython-input-1-88966dcfb499> in main()
29 w.show()
30 app.exec_()
---> 31 sys.exit(0)
32
33
SystemExit: 0
Run Code Online (Sandbox Code Playgroud)
如果我再次尝试执行我的代码,我会得到这个:
RuntimeError: A QApplication instance already exists.
Run Code Online (Sandbox Code Playgroud)
如果它有帮助,这里我的代码:
from PySide.QtCore import *
from PySide.QtGui import *
import sys
class MyWindow(QWidget):
def __init__(self):
QWidget.__init__(self, None)
vbox …Run Code Online (Sandbox Code Playgroud) 启动我的应用程序时会记录两个错误,但只有在混淆之后.没有混淆就没有错误.
除非我被误导,否则错误就像:
class属性声明了多个名为a的JSON字段
和PropertyDefinition类相同.
05/18 03:33:19.465 java.lang.IllegalArgumentException: class PropertyDefinition declares multiple JSON fields named a:
com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:122)
com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
com.google.gson.Gson.getAdapter(Gson.java:349)
com.google.gson.Gson.toJson(Gson.java:574)
com.google.gson.Gson.toJson(Gson.java:561)
com.google.gson.Gson.toJson(Gson.java:516)
com.google.gson.Gson.toJson(Gson.java:496)
Property.a(SourceFile:210) <see comment in code below noting this code line>
Property.a(SourceFile:68)
bj.a(SourceFile:44)
aA.<init>(SourceFile:339)
05/18 03:33:19.479 java.lang.IllegalArgumentException: class Property declares multiple JSON fields named a:
com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.getBoundFields(ReflectiveTypeAdapterFactory.java:122)
com.google.gson.internal.bind.ReflectiveTypeAdapterFactory.create(ReflectiveTypeAdapterFactory.java:72)
com.google.gson.Gson.getAdapter(Gson.java:349)
com.google.gson.Gson.fromJson(Gson.java:790)
com.google.gson.Gson.fromJson(Gson.java:757)
com.google.gson.Gson.fromJson(Gson.java:706)
com.google.gson.Gson.fromJson(Gson.java:678)
Property.a(SourceFile:75) <see comment in code below noting this code line>
bj.a(SourceFile:44)
aA.<init>(SourceFile:339)
Run Code Online (Sandbox Code Playgroud)
以下是与几乎相同的错误之一相关的混淆映射的部分.我在这里和上面对类名"Property"进行了模糊处理.我没有看到问题.我没有混淆的经验,所以我不知道该找什么.
mypackage.Property:
mypackage.PropertyDefinition rootElement -> a
java.util.HashMap indexById -> a
java.util.HashMap indexByKey -> b
long …Run Code Online (Sandbox Code Playgroud) 我正在学习Python.我无法弄清楚为什么hashlib.sha512(salt + password).hexdigest()不给出预期的结果.
我正在寻找相当于Ulrich Drepper的sha512crypt.c算法的纯Python实现.(我花了一些时间来弄清楚我在寻找什么.)
根据crypt我的Ubuntu 12.04系统的手册页,crypt使用SHA-512(因为字符串以$ 6 $开头).
当我调用Python的系统crypt包装器(即crypt.crypt())时,下面的代码验证行为是否符合预期.我想使用hashlib.sha512或其他一些Python lib来产生与crypt.crypt()相同的结果.怎么样?
此代码显示了我遇到的问题:
import hashlib, crypt
ctype = "6" #for sha512 (see man crypt)
salt = "qwerty"
insalt = '${}${}$'.format(ctype, salt)
password = "AMOROSO8282"
value1 = hashlib.sha512(salt + password).hexdigest() #what's wrong with this one?
value2 = crypt.crypt(password, insalt) #this one is correct on Ubuntu 12.04
if not value1 == value2:
print("{}\n{}\n\n".format(value1, value2))
Run Code Online (Sandbox Code Playgroud)
根据crypt手册页,SHA-512是86个字符.crypt()上面代码中的调用符合这一点.但是,hashlib.sha512的输出超过了86个字符,所以在这两个实现之间有所作为......
以下是那些不想运行代码的人的输出:
051f606027bd42c1aae0d71d049fdaedbcfd28bad056597b3f908d22f91cbe7b29fd0cdda4b26956397b044ed75d50c11d0c3331d3cb157eecd9481c4480e455
$6$qwerty$wZZxE91RvJb4ETR0svmCb69rVCevicDV1Fw.Y9Qyg9idcZUioEoYmOzAv23wyEiNoyMLuBLGXPSQbd5ETanmq/
Run Code Online (Sandbox Code Playgroud)
另一种尝试基于此处的初步反馈.还没有成功:
import hashlib, crypt, base64
ctype = …Run Code Online (Sandbox Code Playgroud) 对于Android,有一个java yaml库和snakeyaml一样好吗?(或者是否有人在Android上成功使用snakeyaml?)
首先,这是一个近乎重复的: 如何区分等待(长时间超时)退出通知或超时?
但这是一个新的后续问题.
有这个等待声明:
public final native void wait(long timeout) throws InterruptedException;
Run Code Online (Sandbox Code Playgroud)
它可以通过InterruptedException或超时退出,或者因为在另一个线程中调用Notify/NotifyAll方法,Exception很容易捕获但是...
我的代码绝对需要知道退出是从超时还是通知.(将来,这段代码需要重新设计,但现在无法完成.所以我需要知道退出等待的原因.)
具体来说,有人可以给出一个使用ThreadLocal布尔值的例子,该布尔值仅在notify()上设置为true,并且所有这些都在现有循环中,如下所示?(这或多或少是另一个线程中接受的答案,但没有给出具体的代码示例.我不熟悉Java,所以我需要一个特定的代码示例 - 理想情况下在下面的现有代码的上下文中.)
public synchronized int getLastSequenceNumber() {
while (empty) {
try {
wait(waitTimeValue);
} catch (InterruptedException e) {}
}
empty = true;
return reportedSequenceNumber;
}
public synchronized void reconcileLastSequenceNumber(int sequenceNumber) {
empty = false;
this.reportedSequenceNumber = sequenceNumber;
notifyAll();
}
Run Code Online (Sandbox Code Playgroud)
布尔"空"用于我在这里询问的特定问题之外的目的.我相信我需要添加另一个布尔值来满足原始问题的建议答案.我如何将提议的解决方案集成到上面的现有代码片段中?谢谢.
java ×5
android ×3
gson ×2
ubuntu ×2
adb ×1
android-x86 ×1
cryptography ×1
encryption ×1
exception ×1
exit ×1
ifconfig ×1
ipython ×1
json ×1
linux ×1
liquid ×1
networking ×1
notify ×1
obfuscation ×1
openjdk ×1
passwords ×1
proguard ×1
pyqt4 ×1
pyside ×1
python ×1
shopify ×1
virtualbox ×1
wait ×1
yaml ×1