2016-03-15 116 views
0

我试图将端口Apache Flink移植到Android。该框架部分写在Scala和该单词的执行过程中计数例如,将抛出一个异常(有很多人说我会不会发布)为:在Android设备上运行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代码(纠正我,如果我错了)。

我发现很多岗位关于Android和Scala,但他们似乎更多阶Android应用程序,使代码更简单和更短。

我发现this question关于该主题,但没有帮助。

所以问题是:如何在Android设备上运行scala代码?或者:Android可以运行Scala代码吗?

+1

你在那个应用程序中有scala运行时jar文件吗? – Thilo

+0

你能否澄清一下你的问题。标题:“在Android设备上运行scala代码”不是问题。我的帖子中也没有看到问题。所以目前还不清楚你是问(a)Android可以运行Scala代码,还是(b)我如何解决这个特定的问题。 – EJK

+0

@EJK理论上解决第一个问题解决了第二个问题。但无论如何,我编辑了这个问题。 – justHelloWorld

回答

2

Scala程序需要Scala运行时库。您需要将该jar文件包含在您的应用程序中。

这不是特定于Android,但也适用于桌面Java。

相关问题