这是我第一次在这里寻求帮助,我的部门(政府)已经在市场上发布了一些应用程序(谷歌播放),加密和描述工作非常好,直到昨天我拿到了Jelly Bean 4.2关系.加密工作正常,它实际上加密了要存储的信息.虽然解密它时,我得到一个完全相同的例外:pad block corrupted.我检查了字符串,并且在其他设备上与它一致(使用相同的密钥进行测试),这意味着它完全相同.问题是我们需要保持与以前版本的后兼容性,这意味着如果我在代码中更改某些内容,它应该能够读取旧的加密信息.它存储在SQLite上的加密信息,因为我需要将其编码为Base64.此行发生异常byte [] decrypted = cipher.doFinal(encrypted);
这是我的班级:
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import android.util.Base64;
public class EncodeDecodeAES {
private final static String HEX = "0123456789ABCDEF";
public static String encrypt(String seed, String cleartext) throws Exception {
byte[] rawKey = getRawKey(seed.getBytes());
byte[] result = encrypt(rawKey, cleartext.getBytes());
String fromHex = toHex(result);
String base64 = new String(Base64.encodeToString(fromHex.getBytes(), 0));
return base64;
}
public static String decrypt(String seed, String encrypted) throws Exception {
String base64 …Run Code Online (Sandbox Code Playgroud) 我正在使用这里记录的对Angular2(4.0.3)的i18n支持.我已经生成了xlf文件,一切都很愉快.
但是,假设我有一个链接到我的主页的菜单按钮.我使用属性创建DOM节点i18n="@@homeTitle".现在,在我的主页组件中,我想在我的标签中使用相同的翻译ID<h1>,这样我就可以获得相同的翻译,而无需在文件中维护具有相同内容的多个条目xlf.
我曾希望做类似下面的事情,并让它自动填充我的<a>节点与适当的翻译.
// home.component.html
<h1 i18n="@@homeTitle">Home</h1>
// menu.component.html
<a routerLink="/" i18n="@@homeTitle"></a>
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用.该<a>节点显示了空的文本,而不是翻译的目标.(此外,默认情况下,自动生成的messages.xlf文件中没有转换目标.)
文档实际上提到了这种情况,但没有提供解决方案.这个问题也被GitHub上的用户称为星期一和取消等常见字符串,但该问题线程并未涵盖此特定问题的解决方案.
如何xlf跨多个节点重用我的文件中定义的i18n翻译?
编辑:这是xlf通过使用生成ng-xi18n --i18nFormat=xlf:
<?xml version="1.0" encoding="UTF-8" ?>
<xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
<file source-language="en" datatype="plaintext" original="ng2.template">
<body>
<trans-unit id="homeTitle" datatype="html">
<source>Home</source>
<target/>
</trans-unit>
</body>
</file>
</xliff>
Run Code Online (Sandbox Code Playgroud)
如果@@homeTitle切换两个节点的解析顺序,则<source>分别改变.
我已经坚持这个问题八个小时了,所以我觉得是时候得到一些帮助了.
在我开始我的问题之前,我只会让我知道我已经通过这个网站和谷歌,我找到的答案都没有帮助.(这是一个,另一个,另一个.)
这是交易:我有一个扩展的类SurfaceView(让我们称之为MySurface)并覆盖其中的许多方法.通常情况下,它会绘制几个正方形和文本框,这一切都很好.一旦用户开始触摸,它就会转换为a Bitmap,然后绘制每个帧,直到用户释放.
这就是问题:我想实现这样一种功能:用户可以将两根手指放在屏幕上,捏缩放,也可以平移(但只能用两根手指向下).
我发现了一些缩放到缩放的实现,并通过以下方式将它们改编为我的Canvas对象MySurface:
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.save();
canvas.scale(mScaleVector.z, mScaleVector.z); // This is the scale factor as seen below
canvas.translate(mScaleVector.x, mScaleVector.y); // These are offset values from 0,0, both working fine
// Start draw code
// ...
// End draw code
canvas.restore();
}
private class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener {
@Override
public boolean onScale(ScaleGestureDetector detector) {
float factor = detector.getScaleFactor();
if …Run Code Online (Sandbox Code Playgroud) 任何人都可以解释为什么draw9patch不在我的电脑上尽管ADT和所有?jar文件后的搜索没有给出任何结果.
我相信它应该默认安装.AFAIK,没有人有这个问题.
有人可以帮忙吗?我尝试使用Paint.NET自己制作9个补丁,在图像的左侧和顶部添加一个黑色像素,但由于我是Android的新手,我无法使其工作.我甚至尝试过一个名为better9patch的实用程序无济于事.我现在非常沮丧,因为我认为程序的图形在编程时应该是你最不关心的.
我正在尝试在我的应用程序中使用滑动菜单.在我的索尼Xperia S上它工作得非常好,但当我尝试在HTC Desire HD上启动应用程序时,菜单打开完美的手势,但其他触摸事件被阻止,顶视图(ViewPager滑动菜单在它后面)不滚动.
有人知道如何解决这个问题吗?
提供答案可能会有所帮助(这就是我使用菜单的方式):
private void initSlidingMenu()
{
mSlidingMenu = new SlidingMenu(getApplicationContext());
mSlidingMenu.setMode(SlidingMenu.LEFT);
mSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN);
mSlidingMenu.setShadowWidthRes(R.dimen.default_shadow_width);
mSlidingMenu.setShadowDrawable(R.drawable.defaultshadow);
mSlidingMenu.setBehindOffsetRes(R.dimen.default_behind_offset);
mSlidingMenu.setFadeDegree(0.35f);
mSlidingMenu.setMenu(firstPage);
mSlidingMenu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);
}
Run Code Online (Sandbox Code Playgroud)
在onPageSelected(),我禁用菜单或启用它,所以菜单只出现在左页:
@Override public void onPageSelected(int arg0)
{
ActivityCompat.invalidateOptionsMenu(this);
if (arg0 == Utils.DEFAULT_PAGE)
mSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
else
mSlidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);
}
Run Code Online (Sandbox Code Playgroud) 我试图在我的Android项目中使用开源C库.该库使用该atof()功能.我知道这atof()是标准C库(stdlib.h)中定义的函数.因此,它应该在Android NDK(仿生库)上的标准C库中实现.
但是,当我尝试加载包含对此函数的调用的库时,我收到运行时错误:
java.lang.UnsatisfiedLinkError: Cannot load library: reloc_library[1285]: 86 cannot locate 'atof'....
Run Code Online (Sandbox Code Playgroud)
我是使用NDK进行Android开发的初学者,所以也许我只是错过了标志,编译器指令等等.
我的android.mk档案是:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_ALLOW_UNDEFINED_SYMBOLS := true
LS_CPP=$(subst $(1)/,,$(wildcard $(1)/$(2)/*.c))
LOCAL_MODULE := libA
LOCAL_SHARED_LIBRARIES := \
libgmodule-2.0 \
libgobject-2.0 \
libgthread-2.0 \
libglib-2.0
LOCAL_SRC_FILES:= sourceFile.c
include $(BUILD_SHARED_LIBRARY
Run Code Online (Sandbox Code Playgroud) 我想将"NO_CACHE"设置为newValue.这是我的代码:
static void setFinalStatic(Object newValue) throws Exception
{
Field field = CacheManager.class.getDeclaredField("NO_CACHE");
field.setAccessible(true);
Field modifiersField=Field.class.getDeclaredField("modifiers");
modifiersField.setAccessible(true);
modifiersField.setInt(field,field.getModifiers() & ~Modifier.FINAL);
field.set(null, newValue);
}
Run Code Online (Sandbox Code Playgroud)
但是在Android上运行此代码会产生以下错误:
java.lang.NoSuchFieldException: modifiers
Run Code Online (Sandbox Code Playgroud)
我发现Java modifiers中的Field类是一个字段,但它不是FieldAndroid上类中的字段.
这是Java Field类代码:
http://www.docjar.com/html/api/java/lang/reflect/Field.java.html
这是Android Field类代码:
http://www.oschina.net/code/explore/android-2.2-froyo/java/lang/reflect/Field.java
Java中的上述代码可以工作,但它在Android平台上不起作用.
我该如何解决?
给出以下示例xsd片段:
< xs:attribute name="SEGMENT" default="" use="optional" type="xs:string"/ >
Run Code Online (Sandbox Code Playgroud)
当xjc生成包含SEGMENTbean属性的类时,将自动生成以下getter:
public String getSEGMENT() {
if (segment == null) {
return "";
} else {
return segment;
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是你如何让xs:element对象做同样的事情?换句话说,给定以下xsd片段:
< xs:element name="NAME" default="" type="xs:string"/ >
Run Code Online (Sandbox Code Playgroud)
我想知道我是否可以让xjc生成以下内容:
public String getNAME() {
if (name == null) {
return "";
} else {
return name;
}
}
Run Code Online (Sandbox Code Playgroud)
如何才能做到这一点?
如何初始化一个static不可修改的实例android.util.SparseArray?
我有一个Android活动,有三个按钮.我通过以下方式为主要活动LinearLayout的背景设置了颜色:
android:background="@color/homeBgColor"
Run Code Online (Sandbox Code Playgroud)
我想在活动按钮后面放一个半透明的背景图片.我尝试使用ImageView,但它按下了按钮.
有没有办法设置活动的背景颜色和图像,就像我们在CSS中一样?
#mydiv{ backround: #262626 url("link-to-my-img.png");}
Run Code Online (Sandbox Code Playgroud)
谢谢
android ×8
aes ×1
android-ndk ×1
angular ×1
collections ×1
java ×1
jaxb ×1
menu ×1
sparse-array ×1