我正在尝试将Apache Flink移植到安卓系统。这个框架部分是用Scala编写的,在执行单词计数示例时,会抛出一个异常(还有许多其他的异常,我不会发布):
...
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lscala/sys/package$;
at org.apache.flink.runtime.minicluster.FlinkMiniCluster.setDefaultCiConfig(FlinkMiniCluster.scala:196)
at org.apache.flink.runtime.minicluster.LocalFlinkMiniCluster.generateConfiguration(LocalFlinkMiniCluster.scala:58)
at org.apache.flink.runtime.minicluster.FlinkMiniCluster.<init>(FlinkMiniCluster.scala:76)
at org.apache.flink.runtime.minicluster.LocalFlinkMiniCluster.<init>(LocalFlinkMiniCluster.scala:47)
at org.apache.flink.client.LocalExecutor.start(LocalExecutor.java:114)
at org.apache.flink.client.LocalExecutor.executePlan(LocalExecutor.java:173)
at org.apache.flink.api.java.LocalEnvironment.execute(LocalEnvironment.java:90)
at org.apache.flink.api.java.ExecutionEnvironment.execute(ExecutionEnvironment.java:855)
at org.apache.flink.api.java.DataSet.collect(DataSet.java:410)
at hk.ust.symlab.mobiflink.MainActivity$collectActivity.doInBackground(MainActivity.java:86)
at hk.ust.symlab.mobiflink.MainActivity$collectActivity.doInBackground(MainActivity.java:81)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
...除了例外情况,Android设备似乎无法运行scala代码(如果我错了,请纠正我)。
我已经找到了很多关于安卓和scala的帖子,但它们似乎更多的是关于在应用程序中编写 Scala,以使代码变得更简单和更短。
我已经找到了关于这个话题的这个问题,但是没有帮助。
所以问题是:如何在安卓设备上运行scala代码?或者是: Android可以运行Scala代码吗?
发布于 2016-03-15 11:33:11
Scala程序需要Scala运行时库。您需要在应用程序中包含该jar文件。
这不仅适用于Android,也适用于桌面Java。
https://stackoverflow.com/questions/36003087
复制相似问题