小编Edu*_*lho的帖子

Android 9 Pie崩溃(com.google.android.gms ... ClassNotFoundException)

我有一个在Android上发布的Unity3D游戏,到目前为止它运行良好。但是,Android Vitals仪表板现在报告很多崩溃。这是详细信息:

By Android version: Android 9   4500    100.0%
Run Code Online (Sandbox Code Playgroud)

堆栈跟踪:

java.lang.Error: FATAL EXCEPTION [Thread-360]
Unity version     : 2017.3.1p3
Device model      : Google Pixel
Device fingerprint: google/sailfish/sailfish:9/PQ2A.190305.002/5240760:user/release-keys
Caused by
  at lt.b (com.google.android.gms.policy_ads_fdr_dynamite@30000@30000.238272502.238272502:2)
  at ls.a (com.google.android.gms.policy_ads_fdr_dynamite@30000@30000.238272502.238272502:1)
  at lu.a (com.google.android.gms.policy_ads_fdr_dynamite@30000@30000.238272502.238272502:18)
  at com.google.android.gms.ads.internal.util.ar.a (com.google.android.gms.policy_ads_fdr_dynamite@30000@30000.238272502.238272502:10)
  at kx.a (com.google.android.gms.policy_ads_fdr_dynamite@30000@30000.238272502.238272502:7)
  at kx.run (com.google.android.gms.policy_ads_fdr_dynamite@30000@30000.238272502.238272502:2)
Caused by: java.lang.ClassNotFoundException: 
  at dalvik.system.BaseDexClassLoader.findClass (BaseDexClassLoader.java:134)
  at java.lang.ClassLoader.loadClass (ClassLoader.java:379)
  at ac.loadClass (com.google.android.gms.dynamite_dynamiteloader@16089081@16.0.89 (100400-239467275):4)
  at java.lang.ClassLoader.loadClass (ClassLoader.java:312)
Run Code Online (Sandbox Code Playgroud)

我的AndroidResolverDependencies.xml档案:

<dependencies>
  <packages>
    <package>com.android.support:customtabs:[26.0.0, 27.2.0[</package>
    <package>com.android.support:support-v4:[26.0.0, 27.2.0[</package>
    <package>com.google.android.gms:play-services-ads:17.2.0</package>
    <package>com.google.android.gms:play-services-analytics:11.8.0</package>
    <package>com.google.android.gms:play-services-base:[10.2.1, 12.1.0[</package>
    <package>com.google.android.gms:play-services-location:[10.2.1, 12.1.0[</package>
    <package>com.google.firebase:firebase-messaging:[10.2.1, 12.1.0[</package>
  </packages> …
Run Code Online (Sandbox Code Playgroud)

crash android unity-game-engine admob android-9.0-pie

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

facebook-ios-sdk退出问题

我在这里看到了很多关于Facebook Graph API的问题,但我仍然没有找到使用它进行简单"登录"/"注销"操作的解决方案.看起来单一登录风格造成的混乱比利益更多.

我想知道是否有可能出现以下情况:

  1. 在应用程序中输入(无accessToken/ expirationDate创建).
  2. 通过调用authorize:delegate:方法使用SSO执行登录(应用程序进入后台,登录在"全局"范围(Facebook App/Mobile Safari)中进行,请求用户凭据.
  3. 在应用程序中输入回(现在登录,都accessTokenexpirationDate保存到NSUserDefaults).
  4. 通过调用执行注销logout:方法(现在已经退出,都accessTokenexpirationDate从被删除NSUserDefaults)
  5. 尝试再次执行登录,完成与2中完成的完全相同的步骤.

我意识到,当我打电话时logout:,我确实accessToken从我的App范围注销Facebook(无效),而不是从global范围(Facebook App/Mobile Safari)注销.在5.)当我尝试再次登录时,应用程序转到后台,并且像往常一样在Facebook App/Mobile Safari中再次登录尝试,但是我得到一个屏幕,说我已经登录:

你已经授权了....按"好"继续.登录为...(不是吗?).

对于刚刚在我的应用程序中注销的用户来说,这是一种奇怪的行为.我的问题是:

"我可以从我的应用程序内部真正退出facebook(我的意思是'全球'范围)吗?这会影响使用facebook凭据的其他应用程序.但是,如果我不能这样做,我怎么能避免'奇怪'行为'在上面描述?

谢谢

iphone facebook logout facebook-graph-api ios4

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

Monotouch的照片/图像查看器

我已经google了一下,但找不到一个简单的Image Viewer类可以在我的MonoTouch应用程序中使用.

我不需要显示图像缩略图也不需要显示完整的相册(带有多张照片).

我只需要一个图像查看器来显示UIImageView,允许常见的全屏/缩放操作.

显然,这种观众可以使用来实现UIViewController与子类UIGestureRecognizer,UIScrollViewUINavigationBar挂羊头卖狗肉,但我不想推倒重来.有没有人知道可用的开源组件?

在新的Xamarin Component Store中托管这样的组件也很有用

谢谢

photo image viewer xamarin.ios ios

12
推荐指数
1
解决办法
4445
查看次数

Objective-C,协议和子类

假设我定义了以下协议:

//用户界面对象的基本协议:

@protocol UIObjectProtocol <NSObject>
@property (assign) BOOL touchable;
@end
Run Code Online (Sandbox Code Playgroud)

//对象持有的用户界面对象的基本协议holder:

@protocol UIHeldObjectProtocol <UIObjectProtocol>
@property (readonly) id holder;
@end
Run Code Online (Sandbox Code Playgroud)

以下类层次结构:

//用户界面对象的基类,用于合成touchable属性

@interface UIObject : NSObject <UIObjectProtocol> {
   BOOL _touchable;
}
@end

@implementation UIObject
@synthesize touchable=_touchable;
@end
Run Code Online (Sandbox Code Playgroud)

在这一点上,一切都很好.然后我创建一个UIObject名为的子类UIPlayingCard.本质上,UIPlayingCard符合UIObjectProtocol它,因为它的超类也是如此.

现在假设我想要UIPlayingCard遵守UIHeldObjectProtocol,所以我做了以下事情:

@interface UIPlayingCard : UIObject <UIHeldObjectProtocol> {
}
@end

@implementation UIPlayingCard
-(id)holder { return Nil; }
@end
Run Code Online (Sandbox Code Playgroud)

请注意,UIPlayingCard符合UIHeldObjectProtocol,传递符合UIObjectProtocol.但是我得到了编译器警告UIPlayingCard:

警告:属性'touchable'需要定义方法'-touchable' …

iphone protocols properties objective-c compiler-warnings

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

C#/ MonoTouch:如何在创建/显示ViewController时调用异步方法

Xamarin 发布了async/的支持,await它真正简化了移动平台中响应式UI的开发.我想利用它并从现在开始使用async/await东西来提高代码的编程水平.

但是,由于我对C#比较新,并且在我无法在我的代码中找到'hooks'之前没有使用async/ await我可以调用async方法.我知道事件处理程序是典型的地方(IoC发生的地方),但想象一下以下场景:

我想在加载ViewController时启动后台任务(而不是按下按钮时).

async Task PerformMyTaskAsync ()
{
    // ...
    await ... // another async API
    // ...
}

public override void ViewDidLoad ()
{
    base.ViewDidLoad ();

    // .. initialize UI
    await PerformMyTaskAsync ();
}
Run Code Online (Sandbox Code Playgroud)

很显然,我不能等待为PerformMyTaskAsyncViewDidLoad因为ViewDidLoad既不是异步方法,也不是事件处理程序.

当视图控制器加载(或出现,无论如何)时,启动后台任务的"替代"方法是什么?

c# xamarin.ios async-await xamarin

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

C#排序JSON字符串键

我想转换JSON字符串

"{ \"birthday\": \"1988-03-18\", \"address\": { \"state\": 24, \"city\": 8341, \"country\": 1 } }"
Run Code Online (Sandbox Code Playgroud)

"{ \"address\": { \"city\": 8341, \"country\": 1, \"state\": 24 }, \"birthday\": \"1988-03-18\" }"
Run Code Online (Sandbox Code Playgroud)

注意:我没有使用排序版本进行通信(因为密钥顺序并不重要),我需要一个排序版本来执行本地测试(通过比较JSON字符串).


编辑: I4V指出一个使用Json.Net的解决方案,我宁愿使用一个不需要包含任何第三方库的解决方案(实际上我在我的应用程序中使用内置的System.Json)


我张贴由I4V +一些测试提供的解决方案要点这里.谢谢你们.

.net c# sorting string json

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

如何仅为iPhone 6和6 Plus限制我的应用程序?

CONTEXT

我正在开发目前在iPad设备上运行的填字游戏应用程序.Apple最近发布了iPhone 6和iPhone 6+设备,幸运的是它拥有更大的屏幕,因此可以合法地运行我的游戏(我已经在iPhone 5S设备上测试了我的游戏,如果发现用户运行起来不舒服在这样的屏幕尺寸).

通过这种方式,我决定将我的应用程序迁移到Universal二进制文件,其中包括对iPhone 6,iPhone 6 Plus和iPad设备的支持.

  1. 有没有办法限制我的iOS应用程序只能在iPhone 6和iPhone 6+设备上运行?

或至少:

  1. 有没有办法限制我的iOS应用程序只能在iPhone 6+设备上运行?

iphone size xcode screen ios

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

如何提交仅64位[降级] iOS应用更新

我正在使用Unity3D制作的游戏,由于二进制文件的大小,我正在考虑仅针对64位设备的想法(因此,避免使用胖二进制文件中的armv7和armv7s切片).由于第三方框架(特别是谷歌),Bitcode目前不是一个选项,因此64位定位是我的最后手段.

平台状态中,据说"所以今后,我们将允许您向商店提交64位应用程序,从今年晚些时候的iOS 9开始."这让我觉得它目前是可行的.

我见过一些关于黑客的线索,UIRequiredDeviceCapabilities但没有成功.

我的Xcode版本是Version 7.1.1 (7B1005).

有人知道提交64个应用程序的实际步骤是什么吗?


编辑:

让我说清楚一下:

  • 我的应用程序是目前在App Store都可以使用armv7arm64架构.

    1. 是否可以提交arm64-only更新(降级,删除支持armv7)?
    2. 如果拥有armv7设备的用户在App Store中查找我的应用,会发生什么?用户将被允许下载我的应用程序的前一版本(同时支持一armv7arm64)?

谢谢

64-bit xcode itunesconnect unity-game-engine ios

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

iOS App Store是否根据"下载大小"或"安装大小"进行无线下载限制?

由于App Store上的100MB空中下载限制,我不想丢失移动设备上的应用程序安装.

这样,在我向App Store提交应用程序更新之前,我总是检查App Store File SizesiTunes Connect中当前版本的部分,以确保二进制文件大小不会超过OTA下载限制.

以下是iTunes Connect为我上一次的应用程序构建显示的内容,该内容已在App Store上发布:

iTunes Connect

以下是App Store在iPhone 5S设备上显示的内容:

应用商店

鉴于此,我可以假设App Store上显示的"大小"字段是指应用程序的"安装大小".

Apple是否根据"安装大小"(显示给App Store页面上的用户显示为"大小")或App Store File SizesiTunes Connect中显示的"下载大小"来应用OTA下载限制?

itunesconnect download app-store ota ios

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

UIImagePickerController cameraViewTransform在iOS 4中的行为有所不同

我将我的iPhone和SDK升级到iOS 4.0.1,现在我的应用程序运行方式与在iOS 3.x中运行的方式不同.

我的应用程序使用UIImagePickerController与自定义cameraOverlayView(我将在这篇文章中压制).重点是我需要在全屏模式下看到iphone相机.为了直接解决这个问题,我会提供一些代码和截图来解释发生了什么.

我创建了一个基于视图的应用程序中使用名为"CameraTransform" Xcode的模板项目,所以我得到了两个类:CameraTransformAppDelegateCameraTransformViewController,OK!在我CameraTransformViewControllerviewDidAppear方法中,我输入以下代码:

- (void)viewDidAppear:(BOOL)animated {
    [super viewDidAppear:animated];

    UIImagePickerController* picker = [[UIImagePickerController alloc] init];

    picker.sourceType = UIImagePickerControllerSourceTypeCamera;        
    picker.delegate = self;

    //[self configurePicker_FirstAttempt:picker];   Use this!
    //[self configurePicker_SecondAttempt:picker];  Use this too!

    [self presentModalViewController:picker animated:YES];
}

- (void)configurePicker_FirstAttempt:(UIImagePickerController*) picker {
    picker.showsCameraControls = NO;
    picker.navigationBarHidden = YES;

    // not needed (use defaults)
    //picker.toolbarHidden = YES;
    //picker.wantsFullScreenLayout = YES;
}

- (void)configurePicker_SecondAttempt:(UIImagePickerController*) picker {

    // Transform values for full screen support
    CGFloat cameraTransformX = …
Run Code Online (Sandbox Code Playgroud)

iphone camera transform uiview uiimagepickercontroller

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