诺基亚3310:MIDlet始终显示“无法编译文件”

时间:2019-02-26 23:05:23

标签: java-me nokia midlet midp-2.0

在阅读this注释后,可以为新的Nokia 3310 3G (TA-1006)编写自定义应用程序后,我正在尝试使自己的应用程序运行。

在大量阅读了MIDP,CLDC等内容之后,我安装了Java ME SDK(在全新的Ubuntu安装中,因为Oracle仅支持该版本或Windows),Eclipse和{{ 3}}。

首先,我找不到有关该设备支持哪个版本的MIDP和CLDC的任何信息,因此我继续尝试了一些可能的排列,这些是我的结果:

CLDC \ MIDP | 1.0 | 2.0 | 2.1 |
1.0         |  *  |  *  |  X  |
1.1         |  *  |  *  |  ?  |
1.8         |  X  |  X  |  ?  |

自MIDP 2.1以来我没有尝试过的?项不起作用,没有任何收获,而X项给出了错误“ 无法安装[MIDlet名称]”因为它不适用于此手机”。

因此,手机似乎支持MIDP 2.0配置文件和CLDC 1.1配置,但是当我尝试安装我的应用程序(具有*的任何配置)时,总是这样:

  1. [MIDlet名称]是不受信任的。仍然继续吗?”>好(这是预期的结果)
  2. 无法编译文件”(这是我被卡住的地方)

到目前为止,我尝试了什么(除了各种版本排列之外)

  • 最初,我尝试了一个非常基本的MIDlet子类型:
public void startApp()
{
    Form form = new Form("Hello");
    form.append(new StringItem("Hello", "World!");
    Display.getDisplay(this).setCurrent(form);
}
  • 接下来,我尝试使用Eclipse插件提供的以下模板:
    • 启动MIDlet模板
    • Hello World Midlet模板
  • 选择运行时配置(始终选择DefaultColorPhone时),我将版本配置文件从MIDP-2.1调整为MIDP-2.0
  • 尝试了其他配置MediaControlSkinQwertyDevice

我总是通过单击“ 应用程序描述符”视图中的“ 打包>创建软件包”按钮来生成*.jar.jad文件

在某个时候,它开始尝试各种设置,但我不确定它是否可以工作,读取并重复冲洗。当寻找替代品时,整个旅程变得非常沮丧,因为很多链接都位于不可靠的网站,404或旧版3310手机上。

TL; DR

要为新的诺基亚3310编译一个简单的(未签名的)应用程序,必须执行哪些配置和构建步骤?


以下是imo应该工作的最简单的失败示例的全部内容:

$ tree
.
├── Application Descriptor
├── bin
│   └── com
│       └── stackoverflow
│           └── kvn
│               └── test
│                   └── SOExample.class
├── build.properties
├── deployed
│   └── DefaultColorPhoneM2.0
│       ├── SOTest.jad
│       └── SOTest.jar
├── res
└── src
    └── com
        └── stackoverflow
            └── kvn
                └── test
                    └── SOExample.java

13 directories, 6 files
$ cat Application\ Descriptor 
MIDlet-1: SOExample,,com.stackoverflow.kvn.test.SOExample
MIDlet-Jar-URL: SOTest.jar
MIDlet-Name: SOTest MIDlet Suite
MIDlet-Vendor: MIDlet Suite Vendor
MIDlet-Version: 1.0.0
MicroEdition-Configuration: CLDC-1.1
MicroEdition-Profile: MIDP-2.0
$ cat build.properties 
# MTJ Build Properties
DefaultColorPhoneM2.0.includes=src/com/stackoverflow/kvn/test/SOExample.java\

DefaultColorPhoneM2.0.excludes=\

$ cat src/com/stackoverflow/kvn/test/SOExample.java 
package com.stackoverflow.kvn.test;

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

public class SOExample extends MIDlet {

    private Form form;

    protected void destroyApp(boolean unconditional)
        throws MIDletStateChangeException { /* nop */ }

    protected void pauseApp() { /* nop */ }

    protected void startApp() throws MIDletStateChangeException {
        form = new Form("Hello");
        form.append(new StringItem("Hello", "World!"));
        Display.getDisplay(this).setCurrent(form);
    }
}

设备的软件信息:型号:TA-1006;软体:15.0.0.17.00;作业系统版本:MOCOR_W17.44.3_Release;固件编号:sc7701_barphone

0 个答案:

没有答案