小编Gir*_*hai的帖子

iOS和Android中的AES加密,以及C#.NET中的解密

首先是第一件事.前段时间我在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)

c# android aes ios

13
推荐指数
1
解决办法
9560
查看次数

Facebook帐户套件与Google Play服务的冲突

将帐户工具包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)

android facebook-android-sdk facebook-account-kit

10
推荐指数
2
解决办法
2632
查看次数

Android共享存储保护问题

我已经按照原生广告中的说明实施了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不属于当前用户。共享存储无法保护您的应用程序免受代码注入攻击 …

android admob native-ads

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

实现View.IOnTouchListener接口

在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.DisposeAndroid.Runtime.IJavaObject.Handle代码项需要什么值,而不是throw new NotImplementedException ()代码?

提前致谢

android dispose interface ontouchlistener xamarin

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

Android:如何知道位于Web服务器中的文件是否被修改?

我正在解析位于Web服务器中的Xml文件并将解析后的数据存储到数据库中.对于我的应用程序我使用数据库中的数据.我只需要在修改文件时解析xml文件,否则无需解析.那我怎么知道文件被修改了?我知道我可以使用"if-modified-since"标题.但我需要一些"if-modified-since"标题的例子
请帮帮我.......

android web-applications file

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

ios Facebook将FBNativeAdView添加为Subview

我想使用预建视图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.但是没有告诉如何 …

facebook ios facebook-audience-network

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

Facebook原生广告没有调用FBNativeAdsManagerDelegate实现方法

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)

facebook objective-c ios facebook-audience-network

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

无法获得提供商com.google.android.gms.measurement.AppMeasurementContentProvider

我试图在我的项目中设置 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)

还试过相关的堆栈问题:

  1. 在启用Proguard的情况下将Play服务从8.1更新到8.3
  2. 某些设备出错 - 无法找到"com.google.android.gms.measurement.internal.zzz"类

正如第一个链接中的回答尝试了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)

正如Play服务发行说明中所述.

注意:示例代码正在运行.


更新:

即使我只添加依赖项,有趣的是同样的错误

  compile "com.google.android.gms:play-services-gcm:8.4.0"
Run Code Online (Sandbox Code Playgroud)

在我的app …

java android google-cloud-messaging google-play-services

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

我们是否需要将具有不同dpi的所有图像添加到Android应用程序中

正如你所知道的Android应用程序有不同的DPI,并在Android应用中,我们可以添加drawable在不同势与不同势的DPI小号ldpi,mdpi,hdpixhdpi文件夹.

问题是,当我们想要支持所有DPI时,我们应该添加具有所有不同尺寸的图标或仅添加最大尺寸的图标?

我的意思是假设我有一个带有图标的动作栏项目.我是否应该使用24x24(在drawable-mdpi文件夹中),36x36(在drawble-hdpi文件夹中),48x48(在drawable-xhdpi文件夹中)添加此操作栏项的图标,.....

或者我只需要在xxxhdpi文件夹中添加一个大小为96x96 的图标,android会为其他DPI设置质量好的图标吗?

android multiscreen android-actionbar

5
推荐指数
1
解决办法
2662
查看次数

android通知 - RemoteServiceException

我收到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)

java android android-notifications

4
推荐指数
1
解决办法
4183
查看次数