2012-04-28 2 views
4

Imは普通のようにakkaを使って俳優に簡単なリモート接続をしようとしていますが、私はアンドロイドからakkaを使うと誰かが助けることができますか?アンドロイドのリモートアクターアクター?

import akka.actor.Actor.remote 

// Establish Connection to Remote Actor     
val server = remote.actorFor(remoteActorID, rIP, rPort) 

私はTE次のスタックトレースを取得:

04-28 09:57:13.114: ERROR/AndroidRuntime(18536): FATAL EXCEPTION: Thread-741 
     java.lang.ExceptionInInitializerError 
     at akka.actor.Actor$.remote(Actor.scala:115) 
     at edu.spsu.rgoodwin.networking.api.RemoteConnection.<init>(RemoteConnection.scala:18) 
     at edu.spsu.rgoodwin.csrAndroidApp.ClientConfigActivity.routerRegistration(ClientConfigActivity.scala:234) 
     at edu.spsu.rgoodwin.csrAndroidApp.ClientConfigActivity$$anon$1.run(ClientConfigActivity.scala:71) 
     at java.lang.Thread.run(Thread.java:856) 
     Caused by: java.lang.ExceptionInInitializerError 
     at akka.util.ReflectiveAccess$Remote$.<init>(ReflectiveAccess.scala:52) 
     at akka.util.ReflectiveAccess$Remote$.<clinit>(ReflectiveAccess.scala) 
     ... 5 more 
     Caused by: akka.config.ConfigurationException: Event Handler specified in config can't be loaded [akka.event.EventHandler$DefaultListener] due to [java.lang.ClassNotFoundException: akka.event.EventHandler$DefaultListener] 
     [localhost_0e3e4c40-913a-11e1-b984-660379e93466] 
     at akka.event.EventHandler$$anonfun$1.apply(EventHandler.scala:231) 
     at akka.event.EventHandler$$anonfun$1.apply(EventHandler.scala:223) 
     at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59) 
     at scala.collection.immutable.List.foreach(List.scala:45) 
     at akka.event.EventHandler$.<init>(EventHandler.scala:223) 
     at akka.event.EventHandler$.<clinit>(EventHandler.scala) 
     ... 7 more 
     Caused by: java.lang.ClassNotFoundException: akka.event.EventHandler$DefaultListener 
     at java.lang.Class.classForName(Native Method) 
     at java.lang.Class.forName(Class.java:217) 
     at java.lang.Class.forName(Class.java:172) 
     at akka.util.ReflectiveAccess$.getClassFor(ReflectiveAccess.scala:222) 
     at akka.event.EventHandler$$anonfun$1.apply(EventHandler.scala:225) 
     ... 12 more 
     Caused by: java.lang.NoClassDefFoundError: akka/event/EventHandler$DefaultListener 
     ... 17 more 
     Caused by: java.lang.ClassNotFoundException: akka.event.EventHandler$DefaultListener 
     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 
+0

には、Androidクライアントに配備アッカジャーですか? no class def例外はそれを示していないようです。 –

+0

私はリモートアクタへの接続を要求するまで、akkaをインクルードするためにbuild.sbtファイルを使いました。 "http://repo.typesafe.com/typesafe/releases/" libraryDependencies + = "se.scalablesolutions.akka" % "アッカ・俳優" %で //アッカ リゾルバ+ = "タイプセーフリポジトリ" "1.3" libraryDependencies + = "se.scalablesolutions.akka" % "アッカ、俳優" % "1.3" libraryDependencies + = "se.scalablesolutions.akka" % "アッカリモート" % "1.3" libraryDependencies + = "se.scalablesolutions.akka"% "akka-stm"% "1.3" –

答えて

7

私はAkka 2.0.2とAndroid 2.3.3で動作させました。何をする必要がある:アッカのjarファイルは、ProGuardのが好きではありません同じパスで複数のreference.confが含ま

  1. 回避策。これを行うには、jarファイルからreference.confを削除します。代わりに、の設定と、jarファイルのの設定を含むカスタムreference.confを含めます。

  2. リフレクションによって参照されるakkaからのクラスを含み、sun.misc.Unsafeに関する警告を無視するようにProguardを設定します。私の設定:https://gist.github.com/3307987

  3. アップグレードネッティー3.3.1(sun.misc.Unsafeのその使用法と修正問題)