2

私は今、少し絶望的です。Android (Eclipse) で Akka プロジェクト (scala で記述) を使用しようとしていますが、何を試しても機能しません。
簡単にするために、2 つのプロジェクトを作成しました。1 つは sbt eclipse を使用して作成され、その後 eclipse にインポートされる Akka プロジェクトで、もう 1 つはプロジェクト作成ウィザードを使用する標準の android プロジェクトです。Android コードから Akka コードを参照できますが、実行時に常にNoClassDefFoundError.
誰かが私が間違っていることや、Android アプリで Akka プロジェクトを使用するために一般的にできることを指摘していただければ幸いです。

4

2 に答える 2

1

あなたの痛みが分かります。sbt、proguard、scala、akka を動作させるために何時間も費やしました。ここから project/Build.scala を参照することをお勧めします。

https://github.com/fehguy/swagger-for-the-home/tree/master/android

具体的には次のproguardオプションです。

proguardOption in Android :=
  """
    |-dontwarn scala.**
    |-keepclassmembers class * {
    |    ** MODULE$;
    |}
    |-keep class scala.collection.SeqLike {
    |    public protected *;
    |}
    |-keep public class * extends android.app.Activity
    |-keep public class * extends android.app.Application
    |-keep public class * extends android.app.Service
    |-keep public class * extends android.content.BroadcastReceiver
    |-keep public class * extends android.content.ContentProvider
    |-keep public class * extends android.app.backup.BackupAgentHelper
    |-keep public class * extends android.preference.Preference
    |-keep public class com.android.vending.licensing.ILicensingService
    |-keep public class org.eatbacon.sfth.AnalogUpdateActivity
    |-keep public class org.eatbacon.sfth.UpdateDataTask
    |-keep public class org.eatbacon.sfth.ShowChartActivity
    |
    |-keepclasseswithmembernames class * {
    |    native <methods>;
    |}
    |
    |-keepclasseswithmembernames class * {
    |    public <init>(android.content.Context, android.util.AttributeSet);
    |}
    |
    |-keepclasseswithmembernames class * {
    |    public <init>(android.content.Context, android.util.AttributeSet, int);
    |}
    |
    |-keepclassmembers enum * {
    |    public static **[] values();
    |    public static ** valueOf(java.lang.String);
    |}
    |
    |-keep class * implements android.os.Parcelable {
    |  public static final android.os.Parcelable$Creator *;
    |}
  """.stripMargin

)

于 2013-04-09T00:46:03.887 に答える
0

スタック トレースが表示されないまま発砲していますが、Android プロジェクトから Akka プロジェクトをエクスポートしていないようです。

  1. Android プロジェクトを Eclipse で開きます。
  2. Project Explorer で Android プロジェクトを右クリックします。
  3. メニューから [ビルド パス] --> [ビルド パスの構成] を選択します。
  4. ダイアログが表示されたら、[注文とエクスポート] タブに移動し、Akka プロジェクトがチェックされていることを確認します。
于 2013-04-05T07:31:24.890 に答える