当前位置: 首页 > 知识库问答 >
问题:

为什么我的应用程序没有在iOS上启动,只是显示加载屏幕?

施学
2023-03-14

我在代号一中开发了一个应用程序。在模拟器中,该应用程序可在iPhone和Android手机上运行。现在我在手机上安装了该应用程序。它在不同的Android手机上完美运行。然后我把它安装在一部苹果手机上。我可以安装它,但后来我尝试启动应用程序,并出现一个加载屏幕,它只是加载,没有其他事情发生。

我没有太多更改init(Object)方法。我只是添加了if(Display.getInstance(). canForceOriment()){Display.getInstance(). lockOriment(true);}

start() 方法中,我为 OAuth2 登录名创建登录类的对象,然后将必要的数据(Oauth2 URL、重定向 URI、客户端 ID、客户端密钥)添加到该对象。然后我调用 do 登录() 方法。我把我的代码包装在一个 try/catch() 中,但它不会改变任何东西。

try {
            Login login = new Login() {
                @Override
                public boolean isNativeLoginSupported() {
                    return false;
                }

                @Override
                protected boolean validateToken(String token) {
                    return false;
                }
            };
            login.setOauth2URL(URL_LOGIN);
            login.setRedirectURI(URL_REDIRECT);
            login.setClientId(CLIENTID);
            login.setClientSecret(CLIENT_SECRET);
            login.setCallback(new LoginCallback() {
                @Override
                public void loginSuccessful() {
                    WelcomeForm.getInstance().show();
                }

                @Override
                public void loginFailed(String errorMessage) {
                }
            });
            login.doLogin();
        } catch (Throwable t) {
            Log.e(t);
            Form error = new Form("Errror", new BorderLayout());
            TextArea txt = new TextArea(t.toString());
            error.add(CENTER, txt);
            error.show();
        }

共有1个答案

昌招
2023-03-14

尝试对您的代码进行此更改,它可能会在进程中的某个地方触发调用和阻塞,这应该可以解决这个问题:

Form loading = new Form("Login");
Button login = new Button("Login");
login.addActionListener(e ->
    try {
        Login login = new Login() {
            @Override
            public boolean isNativeLoginSupported() {
                return false;
            }

            @Override
            protected boolean validateToken(String token) {
                return false;
            }
        };
        login.setOauth2URL(URL_LOGIN);
        login.setRedirectURI(URL_REDIRECT);
        login.setClientId(CLIENTID);
        login.setClientSecret(CLIENT_SECRET);
        login.setCallback(new LoginCallback() {
            @Override
            public void loginSuccessful() {
                WelcomeForm.getInstance().show();
            }

            @Override
            public void loginFailed(String errorMessage) {
            }
        });
        login.doLogin();
    } catch (Throwable t) {
        Log.e(t);
        Form error = new Form("Errror", new BorderLayout());
        TextArea txt = new TextArea(t.toString());
        error.add(CENTER, txt);
        error.show();
    }});
loading.show();

原始答案如下:

不存在阻止iOS上OAuth的固有限制。我猜你得到了一个异常,它触发了一个错误< code >对话框并导致了这次失败。我建议用try/catch()包装该区域,并将错误记录为< code>Form或< code>Log,例如:

try {
   // your OAuth code
} catch(Throwable t) {
   Log.e(t);
   Form error = new Form("Errror", new BorderLayout());
   TextArea txt = new TextArea(t.toString());
   error.add(CENTER, txt);
   error.show();
}

知道异常和错误消息后,您可以尝试进一步缩小问题范围。如果您有权访问日志,我们还可以看到堆栈跟踪,例如通过 Log.sendLogAsync()

 类似资料:
  • 我有一个模块化的JavaFX应用程序,具有以下Java代码: 这是模块信息。java文件: 我使用以下命令编译模块化JavaFX应用程序: 我使用以下命令打包模块化JavaFX应用程序: 然后我将应用程序保存在我的/应用程序文件夹中(我在Mac OS上),然后打开应用程序。应用程序会打开一个500x500窗口,但不会渲染任何图形,也不会打开web浏览器。应用程序只打开一个白色空白500x500窗口

  • 进程:org.wit.assignment,PID:13760 java.lang.runtimeException:无法实例化活动组件信息{org.wit.assignment/org.wit.activities.placeMarkactivity}:java.lang.ClassNotFoundException:未在路径:dexpathList[[zip文件“/data/app/org.w

  • 问题内容: 我只希望在应用程序生命周期中仅显示一次启动屏幕。这是我的代码: SplashScreenActivity.java: 表现: 问题是如果我按硬件HOME botton隐藏该应用程序,然后在应用程序列表中再次打开该应用程序。它将再次显示启动屏幕(而不是显示)。是否只有在应用程序“新鲜”启动时才显示启动屏幕(不在onresume()上显示)?谢谢! 问题答案: 是的,有可能。使用Share

  • 我一直试图实现启动屏幕到我的应用程序的帮助下,许多代码可以在网站上使用,但没有一个为我工作。每次应用程序崩溃后显示启动屏幕3秒。我不知道哪里出错了,请更正我的代码,以正确显示闪屏!谢谢! //这是我的主要活动

  • 在过去一周左右的时间里,我一直在开发一款太空入侵者类型的游戏,它进展得非常顺利,但由于某种原因,当我在我的Windows电脑上运行游戏时(我更喜欢在它上面编写代码),大多数精灵都不会出现,或者只有当它们在屏幕上朝某个方向移动时才会出现。当我在Mac上运行完全相同的代码时,一切都会完美地闪烁和更新。这是pygame无法与Windows相处的已知问题吗?事实上,我的Mac电脑上的一切都正常工作,这让我

  • 我目前正在努力使用erlang的OTP观察者。我的应用程序——gen_server和主管——运行良好,但是当我试图使用观察者来查看进程时,我只能在观察者GUI的“应用程序”选项卡中查看“内核”。 这些是导致节点连接的命令,但仅此而已: ------------------------观察家------------------------ /home/erlang#erl-pa ebin/-snam