我现在有点绝望。我正在尝试在 Android(在 Eclipse 中)下使用 Akka 项目(用 scala 编写),但无论我尝试什么,我都无法让它工作。
为简单起见,我创建了两个项目:一个 Akka 项目,使用 sbt eclipse 创建然后导入到 eclipse,以及一个使用项目创建向导的标准 android 项目。我可以从 android 代码中引用 Akka 代码,但在运行时我总是得到一个NoClassDefFoundError
.
如果有人能指出我做错了什么或者我通常可以做什么来在我的 Android 应用程序中使用我的 Akka 项目,我将非常感激。
问问题
1308 次
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 项目。
- 在 Eclipse 中打开您的 Android 项目。
- 在 Project Explorer 中右键单击您的 Android 项目。
- 从菜单中选择构建路径 --> 配置构建路径。
- 当对话框出现时,转到 Order and Export 选项卡,然后确保选中您的 Akka 项目。
于 2013-04-05T07:31:24.890 回答