我正在尝试为Android创建一个使用加密来保存用户信息的应用程序,我无法弄清楚我做错了什么.我正在尝试使用"PBKDF2WithHmacSHA1"算法创建SecretKeyFactory的实例,但是应用程序会继续在程序中的那一点抛出异常(无论是在模拟器中还是在真实硬件上都无关紧要).
码:
SecretKeyFactory secretFactory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
Run Code Online (Sandbox Code Playgroud)
例外:
java.security.NoSuchAlgorithmException:未找到SecretKeyFactory PBKDF2WithHmacSHA1实现...
这是奇怪的事情......如果我把这个代码编译成普通的Java应用程序,它就可以工作......没有抛出任何异常,我可以创建加密文件(并解密它们)而不会出错.
我也尝试输入其他算法(例如AES,PBEWithHmacSHA1AndDESede,PBEWithMD5AndDES等),它们都在代码中的那一行产生相同的错误/异常(编译Android时).
我安装了最新版本的Java(JDK 1.6.0.18),所有更新都应用于Eclipse和插件,以及最新版本的Android SDK.我也在运行Windows 7 64位.
请帮助,我在两天的互联网搜索中找不到答案.谢谢.
我很难让我的Android应用程序播放SD卡上的视频.无论大小,比特率,视频格式或我能想到的任何其他设置都无关紧要,模拟器和我的G1都不会播放我尝试编码的任何内容.我也尝试了一些来自网络的视频(各种视频格式,比特率,有和没有音频轨道等),但这些都没有.
我不断得到的是一个对话框,上面写着:
"无法播放视频"
"抱歉,这部影片无法播放."
在LogCat中报告了错误,但我不理解它们,我试图在互联网上搜索没有任何运气的进一步解释.见下文:
03-30 05:34:26.807: ERROR/QCOmxcore(51): OMXCORE API : Free Handle 390d4
03-30 05:34:26.817: ERROR/QCOmxcore(51): Unloading the dynamic library for OMX.qcom.video.decoder.avc
03-30 05:34:26.817: ERROR/PlayerDriver(51): Command PLAYER_PREPARE completed with an error or info PVMFErrNoResources
03-30 05:34:26.857: ERROR/MediaPlayer(14744): error (1, -15)03-30 05:34:26.867: ERROR/MediaPlayer(14744): Error (1,-15)
Run Code Online (Sandbox Code Playgroud)
有时我也得到这个:
03-30 05:49:49.267: ERROR/PlayerDriver(51): Command PLAYER_INIT completed with an error or info PVMFErrResource
03-30 05:49:49.267: ERROR/MediaPlayer(19049): error (1, -17)
03-30 05:49:49.347: ERROR/MediaPlayer(19049): Error (1,-17)
Run Code Online (Sandbox Code Playgroud)
这是我正在使用的代码(在我的onCreate()方法中):
this.setContentView(R.layout.main);
//just a simple VideoView loading files from the SD …Run Code Online (Sandbox Code Playgroud) 我正在尝试自定义我的FragmentTransaction过渡,我遇到了这个setTransitionStyle方法.它接受一个样式的xml资源id,但我不知道xml资源会是什么样子.我知道你可以为活动定义动画样式,我假设这个方法所需的xml是相似的,但是我找不到任何关于所需格式的文档(例如,使这个工作所需的xml属性/节点).
EDIT1(这就是我现在在FragmentActivity中所做的事情):
public void pushFolderFrag(Fragment folderFrag, String backStackID) {
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.SplitView_MasterContainer, folderFrag);
transaction.addToBackStack(backStackID);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_CLOSE);
//transaction.setTransitionStyle(arg0);//what does the format for this resource look like??
// Commit the transaction
transaction.commit();
}
Run Code Online (Sandbox Code Playgroud) 我正计划实施一些应用内购买项目,我想保存购买信息/数据,以便iTunes在客户同步时备份所述信息.Apple提供的文档说明这是可能的,但并没有真正告诉你如何.
在哪里/如何保存购买历史记录(例如,每个项目的NSString),以便iTunes在下次同步时备份它?
最后,你怎么建议我在让所有这些都上线之前测试一下?
谢谢.
PS现在我正在使用NSUserDefaults存储此信息.
我的应用程序中的UITextFields定义了占位符文本(在Interface Builder中),当我点击占位符文本占用的区域时,我无法使这些字段获得焦点(即显示键盘并允许编辑).如果我点击占位符文本之外的区域中的文本字段(尽管仍然在文本文本本身的范围内),它会正常运行(即弹出键盘,我可以编辑文本字段的内容).我怎样才能解决这个问题?
谢谢.
编辑1
好的,我想我已经知道了.我还设置了这些UITextFields的"leftView"属性的空白视图.如果我删除它,你可以触摸占位符文本区域中的UITextFields,它会按预期做出反应; 我需要这个视图为leftView.如果您将此间隔视图的背景颜色更改为红色,您可以看到它根本不会妨碍,所以我不知道出了什么问题.
为什么这段代码会导致这个问题?
谢谢.
+(UIView*)getTextFieldLeftSpacerViewWithBackgroundColor:(UIColor*)backgroundColor andHeight:(CGFloat)height
{
UIView *leftWrapper = [[UIView alloc] initWithFrame:CGRectMake(0.0f, 0.0f, 8.0f, height)];
leftWrapper.autoresizingMask = UIViewAutoresizingNone;
[leftWrapper setOpaque:YES];
if(backgroundColor){leftWrapper.backgroundColor = backgroundColor;}
else{leftWrapper.backgroundColor = [UIColor clearColor];}
return [leftWrapper autorelease];
}
+(void)setTextFieldLeftSpacerForTextFieled:(UITextField*)textField
{
if(textField)
{
UIView *spacer = [MYViewController getTextFieldLeftSpacerViewWithBackgroundColor:nil andHeight:textField.bounds.size.height];
textField.leftView = spacer;
textField.leftViewMode = UITextFieldViewModeAlways;
}
}
Run Code Online (Sandbox Code Playgroud) 我Windows web server已经设置了一个网站(unlimited application pools),我希望能够database通过Android app我正在开发的访问该服务器上的一个.我怎样才能做到这一点?有人能指点我一个教程或给出如何进行这种跨平台(Android/Java到ASP.NET/C#)通信的代码示例吗?
(我正试图Android在我的服务器上为我的游戏创建一个排行榜或全球记分牌.)
谢谢.
我创建了一个Windows Phone 7应用程序,它从我的服务器下载文件并将它们存储在独立存储中,但我无法找到有关如何使用其他(默认)应用程序打开文件的任何信息.
例如,如果我将.psd文件下载到隔离存储器,我必须编写什么C#调用才能使系统在任何可以读取的应用程序中打开所述文件?这可以在其他平台(iOS和Android)上完成,但我还没有找到有关Windows Phone 7主题的任何文献.
任何帮助,将不胜感激.
有没有办法测试Objective-C中C函数的存在?我正在寻找像"respondsToSelector"这样的东西,但是对于C函数.
更具体地说,我正试图在iOS中测试"UIGraphicsBeginImageContextWithOptions(CGSize size,BOOL opaque>,CGFloat scale)"的存在.
谢谢.
我正在尝试使用基于通过网络连接返回的一些信息生成的片段来完全替换片段后备栈.我首先将后端堆栈弹出到我想要的位置(工作正常......但是为了简单起见,我会说我弹出到根目录),然后我尝试构建并应用这样的片段堆栈:
ArrayList<JSONObject> crumbsOut = new ArrayList<JSONObject>(count);
//.... pop the back stack to a certain point
//replace entire nav. backstack
final FragmentTransaction transaction = this.getActivity().getSupportFragmentManager().beginTransaction();
for(int i = 0; i<count; i++)
{
final JSONObject item = crumbsOut.get(i);
final String id = item.getString("id");
FolderFragment currentFolder = new FolderFragment();//fragment displays folder contents
Bundle args = new Bundle();
args.putString(DATA_ITEM_ID_KEY, id);
args.putString(DATA_ITEM_NAME_KEY, item.getString("displayname"));
currentFolder.setArguments(args);
transaction.replace(R.id.MasterContainer, currentFolder);
transaction.addToBackStack(id);
}
// Commit the transaction
transaction.commit();
Run Code Online (Sandbox Code Playgroud)
当我运行它时,最顶层的FolderFragment正确显示,但当我点击后退按钮(或弹出堆栈)时,视图将恢复到上述代码运行之前的那一刻(即不是回到堆栈中我用循环创建的新片段,我在尝试添加/创建此堆栈之前返回到状态.
如果它有帮助,我在我的项目中使用Android兼容包.
请帮忙.谢谢
android ×5
java ×4
ios ×3
objective-c ×3
iphone ×2
asp.net ×1
c ×1
c# ×1
encryption ×1
http ×1
silverlight ×1
uitextfield ×1
video ×1