gpt4 book ai didi

windows-phone-8 - Windows Phone中的Unity崩溃解析

转载 作者:行者123 更新时间:2023-12-03 16:10:40 25 4
gpt4 key购买 nike

我已经完成了要在Google Play,Windows Phone Store和Windows 8 Store中发布的Unity游戏。我正在使用最新版本的Parse for Unity SDK(1.4.1)和最新版本的Unity Editor(4.6.4p4),包括最新的补丁程序。

我在游戏中进行的Parse实现可完美地在以下方面工作:
-Unity编辑器(所有平台)
-Android(在两台设备上部署apk)
-Android(将游戏发布为Alpha版本,并将其安装在+8个设备中)
-Windows Phone 8(所有Windows Phone仿真器-8.0和8.1-x86)
-Windows Phone 8(在用于Windows Phone的Visual Studio 2012和Visual Studio 2013社区的设备上进行调试)

它不适用于:
-Windows Phone 8(作为Beta版部署)
-Windows Phone 8(部署为隐藏版本)

每当我尝试使用Parse SDK的任何功能时游戏都会崩溃,也不引发任何异常,Windows Phone 8 Store没有提供有关任何崩溃的信息...似乎是程序集加载问题...

我不知道发生了什么,这个问题使我无法发布游戏,以为我快要疯了……

因此,我已经制作了一个简单的虚拟应用程序来测试我的解析实现,并且...存在相同的问题...这非常简单:只有一个附加了“Parse Initialize Behaviour”(带有AppId和的游戏对象)。 NET键设置)和一个非常简单的脚本:

    using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System.Xml;
using System.IO;
using System.Text;
using System;
using System.Linq;
using Parse;
using System.Threading.Tasks;


// Demo application script
public class AppScript : MonoBehaviour
{
public static string userName = "Caldofran";
public static string userPass = "Password5";
public static string userEmail = "caldofran@email.com";
public static string errAsincrono = "";
public static string log = "";

public static bool bLogin = false;
public static bool bSignUp = false;

// Use this for initialization
void Start () {

//Application.runInBackground = true;

}


GUIStyle ts = new GUIStyle();

void OnGUI()
{
if (GUI.Button(new Rect(10, 100, 100, 30), "Sign Up"))
SignUp(userName,userPass, userEmail);

if (GUI.Button(new Rect(10, 150, 100, 30), "Login"))
Login(userName, userPass);


if (GUI.Button(new Rect(10, 200, 100, 30), "Logout"))
Logout();

if (GUI.Button(new Rect(10, 300, 100, 30), "Clear Texts"))
{
errAsincrono = "";
log = "";
}


int left = Screen.width - 110;

string usrParse = "";

if (AppScript.IsLoggedInParse())
usrParse = ParseUser.CurrentUser.Username;

ts.normal.textColor = Color.red;

GUI.BeginGroup(new Rect(300, 5, 600, 500));
GUI.Box(new Rect(0, 0, 400, 300), "");
//GUILayout.Label("P: " + mensajeGUI);
GUILayout.Label("User Config: " + userName, ts);
GUILayout.Label("Pass config: " + userPass, ts);
GUILayout.Label("email config: " + userEmail, ts);
GUILayout.Label("Logged in parse: " + AppScript.IsLoggedInParse().ToString(), ts);
GUILayout.Label("Parse logged user: " + usrParse, ts);
GUILayout.Label("Last msg: " + errAsincrono, ts);
GUILayout.Label("Last Log: " + log, ts);

GUI.EndGroup();
}

// Update is called once per frame
void Update () {


if (bLogin)
{
bLogin = false;
log += " Login Update text";
}

if (bSignUp)
{
bSignUp = false;
log += " SignUp Update text";
}


}



#region Parse

public static bool IsLoggedInParse()
{
bool retorno = false;
if ((ParseUser.CurrentUser != null) && (ParseUser.CurrentUser.IsAuthenticated))
retorno = true;

return retorno;
}

public static void SignUp(string userName, string passWord, string email)
{
var user = new ParseUser()
{
Username = userName,
Password = passWord
};
if (string.IsNullOrEmpty(email))
user.Email = "";
else
user.Email = email;

try
{
Task signUpTask = user.SignUpAsync().ContinueWith(t=>
{
if (t.IsFaulted || t.IsCanceled)
{
// The login failed. Check the error to see why.
foreach(var e in t.Exception.InnerExceptions) {
ParseException parseException = (ParseException) e;
log += parseException.Message + ": CODE: " + parseException.Code.ToString();
}
errAsincrono = t.Exception.Message;
}
else
{
// Signup was successful.
log = "Welcome " + userName;
bSignUp = true;
}
});
}
catch (Exception ex)
{
errAsincrono = "Error: " + ex.Message;
}
}

public static void Login(string user, string pass)
{
try
{
ParseUser.LogInAsync(user, pass).ContinueWith(t =>
{
if (t.IsFaulted || t.IsCanceled)
{
// The login failed. Check the error to see why.
foreach(var e in t.Exception.InnerExceptions) {
ParseException parseException = (ParseException) e;
log += parseException.Message + ": CODE: " + parseException.Code.ToString();
}
errAsincrono = t.Exception.Message;
}
else
{
// Login was successful.
log = "Welcome back " + userName;
AppScript.bLogin = true;
}
});
}
catch (Exception ex)
{
errAsincrono = "Error: " + ex.Message;
}
}

public static void ResetPassword(string email)
{
if (IsLoggedInParse())
{
Task requestPasswordTask = ParseUser.RequestPasswordResetAsync(email);
log = "Pass reset ok";
}
}

public static void Logout()
{

if (IsLoggedInParse())
{
ParseUser.LogOutAsync();
log = "Logged out ";
}
}

#endregion


}

有人可以尝试吗?我做错了什么?为什么此代码几乎总是有效,但在Windows Phone(商店中发布)中却不起作用?

我已经阅读了有关Unity错误的信息,该错误仅影响iOS: http://forum.unity3d.com/threads/unity-5-parse-ios-nsurlerrordomain-error-1012.308569/
此错误(使用WWW槽SSL)会影响Windows Phone应用程序吗?

最佳答案

就我而言,使用Windows的Parse SDK 1.6.1。
设置密码属性将引发ArgumentException。
原因是在主版本配置和.NET Native工具链中。

解决方案1:
在Project的Build设置中取消选中“使用.NET Native工具链编译”。

解决方案2:
创建ParseUser的子类并定义"new"属性用户名和密码。

关于windows-phone-8 - Windows Phone中的Unity崩溃解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29961947/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com