使用 Android 和 LibGDX 的 Swarm 排行榜。 Eclipse 调试版本工作,导出的 apk 版本不工作

Using Swarm Leaderboard for Android with LibGDX. Eclipse debug version working, exported apk version not working

如果你在这里,那么你和我一样已经搜索了整个互联网,寻找最新版本的 Swarm SDK 导致你导出和安装的 APK 崩溃的原因,但在通过 Eclipse 调试时却能完美运行。

来自 Google 崩溃/ANR 报告的错误消息:

android.content.ActivityNotFoundException: Unable to find explicit activity class
{com.robertmackness.jumprx.android/com.swarmconnect.de}; 
have you declared this activity in your AndroidManifest.xml?

在谷歌搜索和阅读官方文档的时间太多后,我尝试了以下修复方法:

  1. 在 Android 清单中明确定义 activity。

  2. 同上但确保 manifestmerger.enabled=false.

  3. 删除了我的 android 清单中 activity 的定义,设置 manifestmerger.enabled=true 并确保这一行是第二行(启用 pro-guard 之后)

  4. 确保项目正确导入了库,并确保'Properties->Java Build Path -> Order and Export -> SwarmConnect.jar 被选中。

同样,上述所有解决方案都能使调试应用程序正常运行,但导出的 apk 会以各种方式损坏。

在下面提交解决方案。

所以我配置了 proguard,但没有指定要保留在 proguard-project.txt 中的任何 class 名称。我也是很久以前设置的,我都忘记了..

我觉得有点傻,因为这与我的 Admob 集成一开始不起作用的原因完全相同。

把这个放到你的proguard-project.txt中得到东西运行:

-keep class com.swarmconnect.**{*;}

-keepattributes Signature

-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}