小编Eri*_*ric的帖子

Android 4.2破坏了我的AES加密/解密代码

这是我第一次在这里寻求帮助,我的部门(政府)已经在市场上发布了一些应用程序(谷歌播放),加密和描述工作非常好,直到昨天我拿到了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)

android aes

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

如何在Angular中重用i18n翻译键?

我正在使用这里记录的对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>分别改变.

internationalization angular

11
推荐指数
1
解决办法
2188
查看次数

画布捏缩放到界限内

我已经坚持这个问题八个小时了,所以我觉得是时候得到一些帮助了.

在我开始我的问题之前,我只会让我知道我已经通过这个网站和谷歌,我找到的答案都没有帮助.(是一个,另一个,另一个.)

这是交易:我有一个扩展的类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)

android android-canvas android-gesture

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

Android Draw9patch丢失了吗?

任何人都可以解释为什么draw9patch不在我的电脑上尽管ADT和所有?jar文件后的搜索没有给出任何结果.

我相信它应该默认安装.AFAIK,没有人有这个问题.

有人可以帮忙吗?我尝试使用Paint.NET自己制作9个补丁,在图像的左侧和顶部添加一个黑色像素,但由于我是Android的新手,我无法使其工作.我甚至尝试过一个名为better9patch的实用程序无济于事.我现在非常沮丧,因为我认为程序的图形在编程时应该是你最不关心的.

android

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

滑动菜单锁定上部视图上的触摸事件

我正在尝试在我的应用程序中使用滑动菜单.在我的索尼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 menu slidingdrawer android-viewpager

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

Android ndk找不到atof功能

我试图在我的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)

android android-ndk

9
推荐指数
2
解决办法
8944
查看次数

Android使用Java Reflection更改私有静态final字段?

我想将"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平台上不起作用.

我该如何解决?

android

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

JAXB xjc:如果值为null,如何为字符串生成返回空的代码?

给出以下示例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)

如何才能做到这一点?

jaxb

8
推荐指数
1
解决办法
2416
查看次数

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

Android:在活动上设置背景颜色和半透明背景图像

我有一个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 android-layout

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