Как решить java.lang.RuntimeException: заглушка!ошибка в .java файле? - PullRequest
0 голосов
/ 04 января 2019

Я пытаюсь классифицировать экземпляр, используя файл .model, который я создал в графическом интерфейсе Weka. Кажется, я успешно классифицировал тестовый экземпляр, однако я не уверен, могу ли я успешно загрузить мои .model файл и с ошибкой компилятора заглушки.

Я попытался удалить extends AppCompatActivity, и если это имеет какое-то значение в загрузке .model. Оказывается, чтобы использовать getAssets(), код должен быть в действии. Тем не менее, я все еще не уверен, есть ли у модели загрузка и необычная ошибка компилятора. Я следовал базовым принципам работы @ davidmascharka над GitHub (он также загружает модель WEKA из ресурсов), но моя не компилируется.

Вот мой код:

package com.example.owner.introductoryapplication;

import android.support.v7.app.AppCompatActivity;

import weka.classifiers.Classifier;
import weka.classifiers.rules.DecisionTable;
import weka.core.Attribute;
import weka.core.DenseInstance;
import weka.core.Instances;

import java.util.ArrayList;

public class Test extends AppCompatActivity {
    public static void main(String[] args) {
        Test test = new Test();
        test.start();
    }

    public void start() {
        //LOADS THE MODEL...------------------------------------------------------
        String rootPath = "/assets/";
        String fileName = "PGBD_DecisionTableUPD.model";
        Classifier cls = null;
        try {
            //cls = (Classifier) weka.core.SerializationHelper.read(rootPath + fileName);
            cls = (DecisionTable) weka.core.SerializationHelper.read(getAssets().open(fileName));
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

А вот мой вывод ошибки:

Exception in thread "main" java.lang.RuntimeException: Stub!
    at android.content.Context.<init>(Context.java:67)
    at android.content.ContextWrapper.<init>(ContextWrapper.java:30)
    at android.view.ContextThemeWrapper.<init>(ContextThemeWrapper.java:40)
    at android.app.Activity.<init>(Activity.java:643)
    at android.support.v4.app.SupportActivity.<init>(ComponentActivity.java:46)
    at android.support.v4.app.FragmentActivity.<init>(FragmentActivity.java:68)
    at android.support.v7.app.AppCompatActivity.<init>(AppCompatActivity.java:62)
    at com.example.owner.introductoryapplication.Test.<init>(Test.java:13)
    at com.example.owner.introductoryapplication.Test.main(Test.java:15)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at com.intellij.rt.execution.application.AppMainV2.main(AppMainV2.java:131)

Process finished with exit code 1

Я ожидаю, что программа хотя бы скомпилируется! Я понятия не имею, почему это не так. Я попытался изменить порядок своих зависимостей, надеясь, что это что-то изменит, но безуспешно.

Есть идеи?

Заранее спасибо.

1 Ответ

0 голосов
/ 31 марта 2019

Это могло быть рассмотрено ранее, но weka.jar только допускает реализации заглушки. По сути, вы должны настроить параметр запуска на «приложение» вместо определенного файла.

Если вы хотите посмотреть, как работает определенный файл, вы можете использовать опцию debug для своего приложения.

...