ios - Codenameone 生成的 IOS 8 App 崩溃

标签 ios codenameone

我在使用 codenameone 生成的 IOS 应用程序时遇到问题。该应用程序有两个多按钮。单击按钮时应用程序崩溃。应用程序并不总是在第一次点击时崩溃,但如果按下几次最终会崩溃。

应用

package org.tradeswitch.mobile;

import com.codename1.components.MultiButton;
import com.codename1.db.Cursor;
import com.codename1.db.Database;
import com.codename1.db.Row;
import com.codename1.ui.Container;
import com.codename1.ui.Dialog;
import com.codename1.ui.Display;
import com.codename1.ui.Form;
import com.codename1.ui.events.ActionEvent;
import com.codename1.ui.events.ActionListener;
import com.codename1.ui.layouts.BorderLayout;
import com.codename1.ui.layouts.BoxLayout;
import com.codename1.ui.SideMenuBar;
import com.codename1.ui.plaf.UIManager;
import com.codename1.ui.util.Resources;
import java.io.IOException;

public class MyApplication implements ActionListener
{
    private Form current;
    private Resources theme;

    public void init(Object context)
    {
        try {
            theme = Resources.openLayered("/theme");
            TUIManager.getInstance().setThemeProps(theme.getTheme(theme.getThemeResourceNames()[0]));
        }
        catch (IOException e) {
            e.printStackTrace();
        }
    }

    public void start()
    {
        if (current != null) {
            current.show();
            return;
        }

        showScreen();
    }//start

    private void showScreen()
    {
        UIManager.getInstance().getLookAndFeel().setMenuBarClass(SideMenuBar.class);
        Form hi = new Form("Hi World");

        Container vBorderContainer = new Container(new BoxLayout(BoxLayout.Y_AXIS));
        vBorderContainer.setScrollVisible(true);
        vBorderContainer.setScrollableY(true);

        vBorderContainer.addPullToRefresh(new Runnable()
        {
            public void run()
            {
                Dialog.show("Debug", "addPullToRefresh()", "Ok", null);
            }
        });

        try {
            Database db = Display.getInstance().openOrCreate("TSMOBILE");
            db.execute("drop table if exists SCREENS");
            db.execute("create table if not exists SCREENS(SCR_ID NUMERIC, SCR_NAME VARCHAR(50), SCR_FLAGS NUMERIC, SCR_SERVICE VARCHAR(50))");
            db.execute("insert into SCREENS(SCR_ID, SCR_NAME, SCR_FLAGS, SCR_SERVICE) values(?, ?, ?, ?)",new Object[]{"1", "Test 1", "0", "Service 1"});
            db.execute("insert into SCREENS(SCR_ID, SCR_NAME, SCR_FLAGS, SCR_SERVICE) values(?, ?, ?, ?)",new Object[]{"2", "Test 2", "0", "Service 2"});

            Cursor vScreens = db.executeQuery("select SCR_ID, SCR_NAME, SCR_FLAGS from SCREENS");
            while (vScreens.next()) {
                Row vRow = vScreens.getRow();

                int vId = vRow.getInteger(0);
                String vName = vRow.getString(1);
                int vFlags = vRow.getInteger(2);

                MultiButton vBtn = new MultiButton();
                vBtn.addActionListener(this);

                vBtn.setTextLine1(vName);
                //vBtn.setIcon(theme.getImage("icon.png"));
                //vBtn.setEmblem(theme.getImage("embleem.png"));
                vBorderContainer.addComponent(vBtn);
            }//while
        }//try
        catch (IOException ex) {

        }//catch
        hi.setLayout(new BorderLayout());
        hi.addComponent(BorderLayout.CENTER, vBorderContainer);
        hi.show();
    }

    public void stop()
    {
        current = Display.getInstance().getCurrent();
    }

    public void destroy()
    {
    }

    public void actionPerformed(ActionEvent evt)
    {
        Dialog.show("Debug", "actionPerformed()", "Ok", null);
    }
}

崩溃日志

Incident Identifier: 5119BFFE-AA2B-40A9-9146-78183D5BC509
CrashReporter Key:   5c4af4c9a0a9084fc90fd6203262ad6b8204ecbc
Hardware Model:      iPhone6,2
Process:             MyApplication [36967]
Path:                /private/var/mobile/Containers/Bundle/Application/E0A2F5D7-A083-4C38-8484-E862758CEF94/MyApplication.app/MyApplication
Identifier:          org.tradeswitch.mobile
Version:             1.0 (1.0)
Code Type:           ARM (Native)
Parent Process:      launchd [1]

Date/Time:           2015-02-15 20:27:47.156 +0200
Launch Time:         2015-02-15 20:27:44.599 +0200
OS Version:          iOS 8.1.3 (12B466)
Report Version:      105

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Triggered by Thread:  2

Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0:
0   libsystem_kernel.dylib          0x340714f0 mach_msg_trap + 20
1   libsystem_kernel.dylib          0x340712e5 mach_msg + 37
2   CoreFoundation                  0x2621d317 __CFRunLoopServiceMachPort + 143
3   CoreFoundation                  0x2621b8bd __CFRunLoopRun + 1013
4   CoreFoundation                  0x261693bd CFRunLoopRunSpecific + 473
5   CoreFoundation                  0x261691cf CFRunLoopRunInMode + 103
6   GraphicsServices                0x2d5270a5 GSEventRunModal + 133
7   UIKit                           0x297777ad UIApplicationMain + 1437
8   MyApplication                   0x00457ebb 0x98000 + 3931835
9   MyApplication                   0x000e35d7 0x98000 + 308695
10  MyApplication                   0x00233a67 0x98000 + 1686119
11  MyApplication                   0x004ded5b 0x98000 + 4484443
12  MyApplication                   0x004ded9f 0x98000 + 4484511
13  libdyld.dylib                   0x33fbeaad start + 1

Thread 1:
0   libsystem_kernel.dylib          0x34084b38 __psynch_cvwait + 24
1   libsystem_pthread.dylib         0x341013f5 _pthread_cond_wait + 517
2   libsystem_pthread.dylib         0x34102319 pthread_cond_timedwait + 41
3   MyApplication                   0x004d970f 0x98000 + 4462351
4   MyApplication                   0x0047c09d 0x98000 + 4079773
5   MyApplication                   0x00491a31 0x98000 + 4168241
6   MyApplication                   0x00492369 0x98000 + 4170601
7   MyApplication                   0x004d9bd9 0x98000 + 4463577
8   libsystem_pthread.dylib         0x34101e91 _pthread_body + 137
9   libsystem_pthread.dylib         0x34101e03 _pthread_start + 115
10  libsystem_pthread.dylib         0x340ffb8c thread_start + 4

Thread 2 Crashed:
0   libsystem_kernel.dylib          0x34084dfc __pthread_kill + 8
1   libsystem_pthread.dylib         0x34102d33 pthread_kill + 59
2   libsystem_c.dylib               0x34024905 abort + 73
3   libsystem_malloc.dylib          0x340b53ab szone_error + 331
4   libsystem_malloc.dylib          0x340b5655 free_list_checksum_botch + 25
5   libsystem_malloc.dylib          0x340ad3ff tiny_malloc_from_free_list + 1023
6   libsystem_malloc.dylib          0x340abeb7 szone_malloc_should_clear + 219
7   libsystem_malloc.dylib          0x340abda7 malloc_zone_malloc + 87
8   CoreFoundation                  0x26157e11 _CFRuntimeCreateInstance + 289
9   ImageIO                         0x271d2d95 CGImageMetadataCreateMutable + 61
10  ImageIO                         0x271d2cdd CGImagePlusCreateWithSession + 413
11  ImageIO                         0x271d2825 makeImagePlus + 809
12  ImageIO                         0x271d20cd CGImageSourceCreateImageAtIndex + 157
13  UIKit                           0x2984c3ff _UIImageRefFromData + 259
14  UIKit                           0x299989bd -[UIImage(UIImagePrivate) _initWithData:preserveScale:cache:] + 73
15  UIKit                           0x2984c2f1 -[UIImage initWithData:] + 25
16  UIKit                           0x2984c2c1 +[UIImage imageWithData:] + 49
17  MyApplication                   0x000a0f8b 0x98000 + 36747
18  MyApplication                   0x0045cf33 0x98000 + 3952435
19  MyApplication                   0x000efb77 0x98000 + 359287
20  MyApplication                   0x000ef74f 0x98000 + 358223
21  MyApplication                   0x002b77f1 0x98000 + 2226161
22  MyApplication                   0x002564c9 0x98000 + 1828041
23  MyApplication                   0x00255af3 0x98000 + 1825523
24  MyApplication                   0x002575fb 0x98000 + 1832443
25  MyApplication                   0x00340275 0x98000 + 2785909
26  MyApplication                   0x0033df0b 0x98000 + 2776843
27  MyApplication                   0x00334a79 0x98000 + 2738809
28  MyApplication                   0x001ca399 0x98000 + 1254297
29  MyApplication                   0x001ca825 0x98000 + 1255461
30  MyApplication                   0x0020eaf9 0x98000 + 1534713
31  MyApplication                   0x001c3f53 0x98000 + 1228627
32  MyApplication                   0x001c3a9f 0x98000 + 1227423
33  MyApplication                   0x001c2905 0x98000 + 1222917
34  MyApplication                   0x00201fc9 0x98000 + 1482697
35  MyApplication                   0x0027f19d 0x98000 + 1995165
36  MyApplication                   0x001c45dd 0x98000 + 1230301
37  MyApplication                   0x0027f5e3 0x98000 + 1996259
38  MyApplication                   0x001c3a9f 0x98000 + 1227423
39  MyApplication                   0x001c2905 0x98000 + 1222917
40  MyApplication                   0x001c2367 0x98000 + 1221479
41  MyApplication                   0x001c82ab 0x98000 + 1245867
42  MyApplication                   0x001970bb 0x98000 + 1044667
43  MyApplication                   0x00195ca1 0x98000 + 1039521
44  MyApplication                   0x001a0839 0x98000 + 1083449
45  MyApplication                   0x00197f51 0x98000 + 1048401
46  MyApplication                   0x0023886b 0x98000 + 1706091
47  MyApplication                   0x00237b4b 0x98000 + 1702731
48  MyApplication                   0x00242d6f 0x98000 + 1748335
49  MyApplication                   0x00243349 0x98000 + 1749833
50  MyApplication                   0x0026c96d 0x98000 + 1919341
51  MyApplication                   0x0022be03 0x98000 + 1654275
52  MyApplication                   0x0022198b 0x98000 + 1612171
53  MyApplication                   0x0022d3f1 0x98000 + 1659889
54  MyApplication                   0x0022c181 0x98000 + 1655169
55  MyApplication                   0x0022af71 0x98000 + 1650545
56  MyApplication                   0x0022b1ed 0x98000 + 1651181
57  MyApplication                   0x00227b83 0x98000 + 1637251
58  MyApplication                   0x00226b5f 0x98000 + 1633119
59  MyApplication                   0x002264e7 0x98000 + 1631463
60  MyApplication                   0x00222443 0x98000 + 1614915
61  MyApplication                   0x00221cc9 0x98000 + 1613001
62  MyApplication                   0x00227ccb 0x98000 + 1637579
63  MyApplication                   0x004dd4e3 0x98000 + 4478179
64  MyApplication                   0x001ecd1d 0x98000 + 1395997
65  MyApplication                   0x0023c13b 0x98000 + 1720635
66  MyApplication                   0x00237857 0x98000 + 1701975
67  MyApplication                   0x0023b867 0x98000 + 1718375
68  MyApplication                   0x003b5b15 0x98000 + 3267349
69  MyApplication                   0x000df667 0x98000 + 292455
70  MyApplication                   0x00492369 0x98000 + 4170601
71  MyApplication                   0x004d9bd9 0x98000 + 4463577
72  libsystem_pthread.dylib         0x34101e91 _pthread_body + 137
73  libsystem_pthread.dylib         0x34101e03 _pthread_start + 115
74  libsystem_pthread.dylib         0x340ffb8c thread_start + 4

Thread 3 name:  Dispatch queue: com.apple.libdispatch-manager
Thread 3:
0   libsystem_kernel.dylib          0x340712a0 kevent64 + 24
1   libdispatch.dylib               0x33faa9fd _dispatch_mgr_invoke + 277
2   libdispatch.dylib               0x33fa020f _dispatch_mgr_thread + 35

Thread 4:
0   libsystem_kernel.dylib          0x340859cc __workq_kernreturn + 8
1   libsystem_pthread.dylib         0x340ffea9 _pthread_wqthread + 789
2   libsystem_pthread.dylib         0x340ffb80 start_wqthread + 4

Thread 5:
0   libsystem_kernel.dylib          0x340859cc __workq_kernreturn + 8
1   libsystem_pthread.dylib         0x340ffea9 _pthread_wqthread + 789
2   libsystem_pthread.dylib         0x340ffb80 start_wqthread + 4

Thread 6:
0   libsystem_kernel.dylib          0x340859cc __workq_kernreturn + 8
1   libsystem_pthread.dylib         0x340ffea9 _pthread_wqthread + 789
2   libsystem_pthread.dylib         0x340ffb80 start_wqthread + 4

Thread 7:
0   libsystem_kernel.dylib          0x340859cc __workq_kernreturn + 8
1   libsystem_pthread.dylib         0x340ffea9 _pthread_wqthread + 789
2   libsystem_pthread.dylib         0x340ffb80 start_wqthread + 4

Thread 8:
0   libsystem_kernel.dylib          0x34084b38 __psynch_cvwait + 24
1   libsystem_pthread.dylib         0x341013f5 _pthread_cond_wait + 517
2   libsystem_pthread.dylib         0x34102319 pthread_cond_timedwait + 41
3   MyApplication                   0x004d970f 0x98000 + 4462351
4   MyApplication                   0x0047c09d 0x98000 + 4079773
5   MyApplication                   0x003b507b 0x98000 + 3264635
6   MyApplication                   0x003b5acb 0x98000 + 3267275
7   MyApplication                   0x003b63cf 0x98000 + 3269583
8   MyApplication                   0x000df667 0x98000 + 292455
9   MyApplication                   0x00492369 0x98000 + 4170601
10  MyApplication                   0x004d9bd9 0x98000 + 4463577
11  libsystem_pthread.dylib         0x34101e91 _pthread_body + 137
12  libsystem_pthread.dylib         0x34101e03 _pthread_start + 115
13  libsystem_pthread.dylib         0x340ffb8c thread_start + 4

Thread 2 crashed with ARM Thread State (32-bit):
    r0: 0x00000000    r1: 0x00000000      r2: 0x00000000      r3: 0x0000004d
    r4: 0x00000006    r5: 0x00a1c000      r6: 0x16f2c2a4      r7: 0x00a18f00
    r8: 0x00000001    r9: 0x340bb8b6     r10: 0x00824000     r11: 0x340bbac7
    ip: 0x00000148    sp: 0x00a18ef4      lr: 0x34102d37      pc: 0x34084dfc
  cpsr: 0x00000010

最佳答案

我已经通过强制 CodenameOne 构建服务器使用旧 VM 解决了这个问题,直到解决了新 VM 的问题。

要强制构建服务器使用旧 VM,必须指定以下构建提示

ios.newVM = false

关于ios - Codenameone 生成的 IOS 8 App 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28529575/

相关文章:

ios 快速写入流

ios - 更新 Parse 对象时在代码内部发出警告

android - Codenameone 创建可打印文档

java - 代号一 : How to display the contents of entire properties page

java - 相对于按钮的 Material 图像尺寸[代号one]

authentication - codenameone 通过短信打开表格

ios - 如何从触摸点呈现 ViewController?

ios - 在 Interface Builder 中的 2 个 View 之间设置固定空间

java - 如何在没有sqlite数据库的情况下使用代号一和eclipse保存/加载表内容

ios - 使用 heightForRowAtIndexPath 设置 UITableViewCell 高度 *without*