Nokia 3310: мидлет всегда выдает «Не могу скомпилировать файл» - PullRequest
0 голосов
/ 27 февраля 2019

После прочтения этого комментария, доказывающего, что можно писать собственные приложения для новой Nokia 3310 3G (TA-1006) , я пытаюсь запустить собственное приложение.

После долгих чтений о том, что такое MIDP, CLDC и т. Д., Я установил Java ME SDK (в новой установке Ubuntu, поскольку Oracle поддерживает только эту ОС или Windows), Eclipse и Sun Wireless toolkit .

Прежде всего, я не смог найти никакой информации о том, какие версии MIDP и CLDC поддерживаются устройством, поэтому я пошел дальше.и попробовал несколько возможных перестановок, вот мои результаты:

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

Те ?, которые я не пробовал, так как MIDP 2.1 не работает и нечего получить, а те, которые X даютошибка « Невозможно установить [имя мидлета], потому что он не работает с этим телефоном ».

Таким образом, кажется, что телефон поддерживает профиль MIDP 2.0 и конфигурации CLDC 1.1,Однако, когда я пытаюсь установить свое приложение (сНи одна из конфигураций *) всегда выглядит так:

  1. " [имя мидлета] не заслуживает доверия.Продолжить в любом случае?"> Хорошо (это ожидалось)
  2. " Не удается скомпилировать файл"(вот где я застрял)

То, что я пробовал до сих пор (кроме различных перестановок версий)

  • Первоначально я пытался с очень простым подтипом мидлета:
public void startApp()
{
    Form form = new Form("Hello");
    form.append(new StringItem("Hello", "World!");
    Display.getDisplay(this).setCurrent(form);
}
  • Далее,Я попытался использовать эти шаблоны, предоставляемые плагином Eclipse:
    • Шаблон Splash MIDlet
    • Шаблон Hello World Midlet
  • При выборе конфигурации времени выполнения (всегда выбираетсяDefaultColorPhone) Я изменил профиль версии с MIDP-2.1 на MIDP-2.0
  • Пробовал другие конфиги MediaControlSkin и QwertyDevice

Я всегда производил *.jarи .jad файлов, нажав кнопку « Упаковка> Создать пакет » в представлении « Дескриптор приложения ».

В какой-то момент он стал экспериментировать с различными настройкамикоторый я не имел большой уверенности, что это будет работать, чтение и полоскание-повторение. При поискеальтернативы, весь путь стал довольно разочаровывающим, так как многие ссылки либо на изворотливых веб-сайтах, 404 или на старый телефон 3310.

TL; DR

Какие этапы конфигурации и сборки необходимы дляполучить простое (без знака) приложение, скомпилированное для новой Nokia 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

...