我正在尝试将BouncyCastle添加为Windows XP Pro上的安全提供程序,因此我可以使用它根据此处的说明向Android应用程序添加一些证书.不幸的是我不能让它添加提供者.
我有:
C:\Program Files\Java\jre6\lib\ext\.C:\Program Files\Java\jre6\lib\ext\bcprov-jdk16-146.jar到%CLASSPATH%.security.provider.7=org.bouncycastle.jce.provider.BouncyCastleProvider到java.security(7是顺序中的下一个int).当我跑:
keytool -import -v -trustcacerts -alias 0 -file mycert.crt -keystore mystore.bks -storetype BKS -providerName org.bouncycastle.jce.provider.BouncyCastleProvider -storepass mypassword
Run Code Online (Sandbox Code Playgroud)
我收到以下错误消息:
keytool error: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider
Run Code Online (Sandbox Code Playgroud)
我也试过动态添加它:
import java.security.Provider;
import java.security.Security;
import java.util.Enumeration;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
public class BouncyCastleMain {
public static void main(String[] args) throws Exception {
Security.addProvider(new BouncyCastleProvider()); // add it
try { // list them out
Provider p[] = Security.getProviders();
for (int i …Run Code Online (Sandbox Code Playgroud) 我在button_selector.xml中定义了以下选择器
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:state_enabled="true"
android:drawable="@drawable/button_settlement_background_pressed" />
<item android:state_enabled="true"
android:drawable="@drawable/button_settlement_background_normal" />
<item android:state_enabled="false"
android:drawable="@drawable/button_settlement_background_disabled" />
</selector>
Run Code Online (Sandbox Code Playgroud)
当我运行lint时,我收到以下警告:在布局文件中找到意外的文本:"".它说它发生在第4行的"可绘制"中.所有引用的drawable都存在于/ res/drawable中.
有谁知道是什么原因引起的?我可以忽略警告,但如果可能的话我宁愿修理它.
此外,当我们仅在AndroidManifest.xml中引用时,我会收到有关未使用的字符串和图标的警告.有没有办法解决这些而不是忽略它们?
我有一个应用程序,允许用户从一组预定义的控件构建复杂的屏幕布局.然后这些控件相互通信以生成最终功能.我看到的问题是,无论我做什么,似乎任何由一个控件的更改引起的重绘都会强制整个屏幕重绘(如启用"显示屏幕更改"所示).因为我有很多自定义控件而后面没有太多的XML,所以这种重绘可能非常慢.
例如,一个控件可能是一个由几个线性布局构建的计算器.另一个可能是从线性布局动态生成的命令网格构建.然后在加载屏幕时将其中的每一个添加到父相对布局中.按下计算器上的某个键会强制命令网格重绘,即使其任何视图中没有任何更改.
我已经尝试打开硬件加速并将所有视图的图层类型更改为LAYER_TYPE_HARDWARE而没有运气.
如何确保仅重绘屏幕的特定子部分?在这一点上,我没有做任何让自己无效的调用,但我有自己的按钮,布局和其他UI组件的可用版本,所以如果我需要达到这个级别的控制,至少已经有一个框架适合它.
我有以下几点:
public class A {
public void theMethod(Object arg1) {
// do some stuff with a single argument
}
}
public class B {
public void reflectingMethod(Object arg) {
Method method = A.class.getMethod("theMethod", Object.class);
method.invoke(new A(), arg);
}
}
Run Code Online (Sandbox Code Playgroud)
如何修改它以便我可以执行以下操作?
public class A {
public void theMethod(Object... args) {
// do some stuff with a list of arguments
}
}
public class B {
public void reflectingMethod(Object... args) {
Method method = A.class.getMethod("theMethod", /* what goes here ? */);
method.invoke(new …Run Code Online (Sandbox Code Playgroud) 我绞尽脑汁试图找到一种简单的方法来强制子类声明另一种类型的子类.比如,我有
public final class MessageType1 extends MessageType {
public static final class Subtypes extends MessageSubtypes {
public static int SOME_SUBTYPE = 1;
}
}
public final class MessageType2 extends MessageType {
public static final class Subtypes extends MessageSubtypes {
public static int ANOTHER_SUBTYPE = 1;
}
}
public abstract class MessageType {
public static abstract class MessageSubtypes {
public static int ALL_SUBTYPES = 0;
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法确保MessageType的每个子节点都必须创建自己的MessageSubtypes版本并将其命名为Subtypes?
或者也许我在错误的圈子中旋转,有更好的方法来做到这一点.基本上我只是想确保我的所有消息类型都有自己的一组唯一子类型,并且每个子类型都有一个名为ALL的成员,其值为0.创建没有子类型的MessageType不应该编译,但如果不可能它应该至少不可用,如果发生则抛出异常.