首先是第一件事.前段时间我在Android中需要一个简单的AES加密来加密密码并将其作为密码被解密的.net Web服务的参数发送.
以下是我的Android加密:
private static String Encrypt(String text, String key)
throws Exception {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
byte[] keyBytes= new byte[16];
byte[] b= key.getBytes("UTF-8");
int len= b.length;
if (len > keyBytes.length) len = keyBytes.length;
System.arraycopy(b, 0, keyBytes, 0, len);
SecretKeySpec keySpec = new SecretKeySpec(keyBytes, "AES");
IvParameterSpec ivSpec = new IvParameterSpec(keyBytes);
cipher.init(Cipher.ENCRYPT_MODE,keySpec,ivSpec);
byte[] results = cipher.doFinal(text.getBytes("UTF-8"));
String result = Base64.encodeBytes(results);
return result;
}
Run Code Online (Sandbox Code Playgroud)
然后我用C#解密它:
public static string Decrypt(string textToDecrypt, string key)
{
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
RijndaelManaged rijndaelCipher = new …Run Code Online (Sandbox Code Playgroud) 将帐户工具包sdk配置为
compile 'com.facebook.android:account-kit-sdk:4.+'
Run Code Online (Sandbox Code Playgroud)
和gradle这个同步将其与冲突com.google.android.gms gradle的混合版本可能会导致运行时崩溃,我的应用程序崩溃的
Firebase API初始化失败.来自com.google.firebase.FirebaseApp.zza(未知来源)的java.lang.reflect.Method.invoke(Native Method)的java.lang.reflect.InvocationTargetException ...
上述错误是由于谷歌播放服务混合(我认为谷歌播放服务gradle可能会被Facebook帐户套件SDK使用),因为我对所有谷歌播放服务的评分都有相同的版本.
还有一个崩溃来自Facebook Account Kit SDK
java.lang.RuntimeException: Unable to get provider com.facebook.accountkit.internal.AccountKitInitProvider: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.PackageManager android.content.Context.getPackageManager()' on a null object reference
at android.app.ActivityThread.installProvider(ActivityThread.java:5260)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4808)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4748)
at android.app.ActivityThread.access$1700(ActivityThread.java:153)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1436)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:5529)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.pm.PackageManager android.content.Context.getPackageManager()' on a null object reference
at com.facebook.accountkit.internal.Initializer.initialize(Initializer.java:99)
at com.facebook.accountkit.internal.AccountKitController.initialize(AccountKitController.java:592)
at …Run Code Online (Sandbox Code Playgroud) 我已经按照原生广告中的说明实施了Google原生广告
除Android 4.x版本外,它在所有设备上均可完美运行。崩溃日志控制台是
Non-fatal Exception: java.lang.IllegalArgumentException: Optimized data directory /storage/emulated/0/Android/data/com.myapp/cache is not owned by the current user. Shared storage cannot protect your application from code injection attacks.
at dalvik.system.DexFile.(DexFile.java:100)
at dalvik.system.DexFile.loadDex + 149(DexFile.java:149)
at dalvik.system.DexPathList.loadDexFile + 251(DexPathList.java:251)
at dalvik.system.DexPathList.makeDexElements + 219(DexPathList.java:219)
at dalvik.system.DexPathList.(DexPathList.java:96)
at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:56)
at dalvik.system.DexClassLoader.(DexClassLoader.java:57)
at ir.b + 31(ir.java:31)
at ir.a + 5(ir.java:5)
at iu.a + 1(iu.java:1)
at com.google.android.gms.ads.internal.ag.run + 5(ag.java:5)
at java.util.concurrent.ThreadPoolExecutor.runWorker + 1080(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run + 573(ThreadPoolExecutor.java:573)
at java.lang.Thread.run + 856(Thread.java:856)
Run Code Online (Sandbox Code Playgroud)
在崩溃上方,它显示为优化数据目录 /storage/emulated/0/Android/data/com.myapp/cache不属于当前用户。共享存储无法保护您的应用程序免受代码注入攻击 …
在Xamarin中,我编写了一个实现View.IOnTouchListener接口的类.
这是我的代码:
public class OnTouchListener : View.IOnTouchListener
{
public bool OnTouch (View v, MotionEvent e)
{
return true;
}
void IDisposable.Dispose ()
{
throw new NotImplementedException ();
}
IntPtr Android.Runtime.IJavaObject.Handle {
get {
throw new NotImplementedException ();
}
}
}
Run Code Online (Sandbox Code Playgroud)
我IDisposable.Dispose和Android.Runtime.IJavaObject.Handle代码项需要什么值,而不是throw new NotImplementedException ()代码?
提前致谢
我正在解析位于Web服务器中的Xml文件并将解析后的数据存储到数据库中.对于我的应用程序我使用数据库中的数据.我只需要在修改文件时解析xml文件,否则无需解析.那我怎么知道文件被修改了?我知道我可以使用"if-modified-since"标题.但我需要一些"if-modified-since"标题的例子
请帮帮我.......
我想使用预建视图FBNativeAdView(不想自定义FBNative Ad).如链接中所示
FBNativeAdView创建预建的原生广告模板视图并管理原生广告.
我在Facebook SDK中给出了Changed NativeAdSample示例.并添加为mainView(adUIView)的子视图.FBNativeAdView
-(void) nativeAdDidLoad: (FBNativeAd * ) nativeAd
{
NSLog(@"Native ad was loaded, constructing native UI...");
if (self._nativeAd)
{
[self._nativeAd unregisterView];
}
self._nativeAd = nativeAd;
// Here I did add
FBNativeAdViewAttributes * attributes = [[FBNativeAdViewAttributes alloc] init];
attributes.backgroundColor = [UIColor whiteColor];
attributes.titleColor = [UIColor blackColor];
FBNativeAdView * fbNativeAdView = [FBNativeAdView nativeAdViewWithNativeAd: self._nativeAd withType: FBNativeAdViewTypeGenericHeight300 withAttributes: attributes];
}
Run Code Online (Sandbox Code Playgroud)
所以问题是如何添加fbNativeAdView作为ParentView的子视图,以便它应该在父视图中查看.我做到了
[self.adUIView addSubview:fbNativeAdView];
Run Code Online (Sandbox Code Playgroud)
没有成功.
原生广告模板提供了有关如何获取的FBNativeAdView信息FBNativeAd.但是没有告诉如何 …
FBNativeAdsManagerDelegate在Facebook Native Ads在UIViewController类中正常工作,但在自定义NSObject类中使用时,它无法工作,即它的委托方法nativeAdsLoaded,nativeAdsFailedToLoadWithError并没有被调用.
CustomFBAd.h文件
@import FBAudienceNetwork;
#import <Foundation/Foundation.h>
@protocol OnFBNativeAdLoadedDelegate<NSObject>
- (void)onFBNativeAdLoaded:(UIView *)adView;
@end
@interface CustomFBAd : NSObject
@property (nonatomic,weak) id <OnFBNativeAdLoadedDelegate>delegate;
-(void)requestNativeAd:(NSString *)FaceBookPlacementID;
@end
Run Code Online (Sandbox Code Playgroud)
CustomFBAd.m文件
#import "CustomFBAd.h"
@interface CustomFBAd ()<FBNativeAdsManagerDelegate,FBNativeAdDelegate>
@property (nonatomic, strong) FBNativeAdsManager *manager;
@property (nonatomic, weak) FBNativeAdScrollView *scrollView;
@end
@implementation CustomFBAd
-(void)requestNativeAd:(NSString *)FaceBookPlacementID{
if(FaceBookPlacementID.length != 0){
FBNativeAdsManager *manager = [[FBNativeAdsManager alloc] initWithPlacementID:FaceBookPlacementID forNumAdsRequested:5];
manager.delegate = self;
[FBAdSettings addTestDevice:@"cf1bb93becbe6e31f26fdf7d80d19b4ae225afaa"];
[manager loadAds];
self.manager = manager;
}
}
#pragma mark - …Run Code Online (Sandbox Code Playgroud) 我试图在我的项目中设置 GCM,如在Android上设置GCM客户端应用程序和设置Google Play服务添加的依赖关系中所示
compile "com.google.android.gms:play-services-gcm:8.4.0"
Run Code Online (Sandbox Code Playgroud)
到我的应用程序的build.gradle文件的依赖项部分.
并在根gradle文件中添加类路径,如示例项目(从中克隆的样本$ git clone https://github.com/googlesamples/google-services.git)所示
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0-beta6'
classpath 'com.google.gms:google-services:2.0.0-beta6'
}
Run Code Online (Sandbox Code Playgroud)
它正在构建正常,但它在启动时崩溃,具有以下堆栈跟踪:
java.lang.RuntimeException:无法获取提供者com.google.android.gms.measurement.AppMeasurementContentProvider:java.lang.NullPointerException:android.app上的android.app.ActivityThread.installProvider(ActivityThread.java:5156)中的null引用. ActivityThread.installContentProviders(ActivityThread.java:4748)在android.app.ActivityThread.handleBindApplication(ActivityThread.java:4688)android.app.ActivityThread.-wrap1(ActivityThread.java)android.app.ActivityThread $ H.handleMessage( ActivityThread.java:1405)android.app.Handler.dispatchMessage(Handler.java:102)android.app.Looper.loop(Looper.java:148)android.app.ActivityThread.main(ActivityThread.java:5417) )com.android.internal.os.ZygoteInit.main中的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)中的java.lang.reflect.Method.invoke(Native Method)(ZygoteInit) .java:616)引起:java.lang.NullPointerException:com.google.android.gms.common.internal.zzx.zzy(Unknown Sou)的null引用 rce)com.google.android.gms.measurement.internal.zzt.zzaU(未知来源)at com.google.android.gms.measurement.AppMeasurementContentProvider.onCreate(Unknown Source)at android.content.ContentProvider.attachInfo(ContentProvider .java:1748)在Android.app.ActivityThread.installProviders(ActivityThread.java:4748)的android.app.AtentThread.installProvider(ActivityThread.java:5153)的android.content.ContentProvider.attachInfo(ContentProvider.java:1723)在android.app.ActivityThread.handleBindApplication(ActivityThread.java:4688)的android.app.ActivityThread.-wrap1(ActivityThread.java)android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1405)在android.os .Handler.dispatchMessage(Handler.java:102)位于android.app.Looper.loop(Looper.java:148)的android.app.ActivityThread.main(ActivityThread.java:5417),位于java.lang.reflect.Method.在com.android.internal.os.Zygo的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)中调用(Native Method)teInit.main(ZygoteInit.java:616)
还试过相关的堆栈问题:
正如第一个链接中的回答尝试了classpath
classpath 'com.google.gms:google-services:1.5.0'
Run Code Online (Sandbox Code Playgroud)
并且在第二个链接中回答,尝试过Multidex也没有成功.
还尝试了应用程序测量 添加
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="google_app_measurement_enable">0</integer>
</resources>
Run Code Online (Sandbox Code Playgroud)
注意:示例代码正在运行.
更新:
即使我只添加依赖项,有趣的是同样的错误
compile "com.google.android.gms:play-services-gcm:8.4.0"
Run Code Online (Sandbox Code Playgroud)
在我的app …
正如你所知道的Android应用程序有不同的DPI,并在Android应用中,我们可以添加drawable在不同势与不同势的DPI小号ldpi,mdpi,hdpi和xhdpi文件夹.
问题是,当我们想要支持所有DPI时,我们应该添加具有所有不同尺寸的图标或仅添加最大尺寸的图标?
我的意思是假设我有一个带有图标的动作栏项目.我是否应该使用24x24(在drawable-mdpi文件夹中),36x36(在drawble-hdpi文件夹中),48x48(在drawable-xhdpi文件夹中)添加此操作栏项的图标,.....
或者我只需要在xxxhdpi文件夹中添加一个大小为96x96 的图标,android会为其他DPI设置质量好的图标吗?
我收到RemoteServiceException.如果我只是在活动的onResume()中调用以下内容,就会发生这种情况:
NotificationManager mNotificationManager = (NotificationManager) mContext.getSystemService(Context.NOTIFICATION_SERVICE);
NotificationCompat.Builder notif = new NotificationCompat.Builder(mContext);
notif.setTicker("Notification ticker")
.setContentTitle("Vinceri")
.setContentText("Ha recibido una oferta de trabajo")
.setAutoCancel(true);
//create notification from builder
Notification notification = notif.build();
mNotificationManager.notify(0, mBuilder.buildNotification(content));
Run Code Online (Sandbox Code Playgroud)
仅在调用notify时才会发生.
android.app.RemoteServiceException: Bad notification posted from package com.java: Couldn't create icon: StatusBarIcon(pkg=com.java id=0x1 level=0 visible=true num=0 )
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1264)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4493)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:788)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud) android ×8
ios ×3
facebook ×2
java ×2
admob ×1
aes ×1
c# ×1
dispose ×1
file ×1
interface ×1
multiscreen ×1
native-ads ×1
objective-c ×1
xamarin ×1