【问题标题】:How to resolve java.lang.RuntimeException: Stub! error in .java file?如何解决 java.lang.RuntimeException:存根! .java 文件中的错误?
【发布时间】:2019-04-05 00:25:34
【问题描述】:

我正在尝试使用我在 Weka GUI 上创建的 .model 文件对实例进行分类。看来我已经成功地对测试实例进行了分类,但是,我不确定我是否能够成功加载我的 .model 文件的 Stub 编译器错误。

我已尝试删除 extends AppCompatActivity,如果这对 .model 上传有任何影响。事实证明,要使用getAssets(),代码必须在活动中。但是,我仍然不确定模型是否有上传和异常的编译器错误。我遵循了@davidmascharka 的work on GitHub 的基本框架(他也在从assets 加载一个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

我希望程序至少可以编译!我完全不知道为什么不是。我尝试切换依赖项的顺序,希望能有所作为,但没有成功。

有什么想法吗?

提前致谢。

【问题讨论】:

  • 这个问题已经被问到stackoverflow.com/questions/8982631/…
  • 希望这会有所帮助
  • @rishavprasher 感谢您的链接。它提到我应该在 Android 模拟器上或直接在设备上运行它,但我只是使用System.out 打印它而不是在设备屏幕上。
  • 欢迎您@Shounak Ray
  • @rishavprasher 所以我不能用它来解决我的问题......!

标签: java compiler-errors weka assets stub


【解决方案1】:

这可能之前已经介绍过,但weka.jar允许 Stub 实现。本质上,您必须将运行设置配置为“app”而不是特定文件。

如果您想查看特定文件的工作方式,可以为您的应用使用debug 选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-16
    • 1970-01-01
    • 1970-01-01
    • 2018-04-24
    • 2021-09-15
    相关资源
    最近更新 更多