2015-01-14 4 views
0

Если вы здесь, то, как и я, вы просмотрели весь интернет, ища причины, по которым последняя версия Swarm SDK приводит к сбою вашего экспортированного и установленного APK, но работает безупречно при отладке через Eclipse.Использование Swarm Leaderboard для Android с LibGDX. Eclipse отладочная версия работает, экспортирована версия apk не работает

Сообщение об ошибке от 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.

  2. Как указано выше, но при условии, что manifestmerger.enabled = false.

  3. Удалены определения для деятельности в моем андроиде манифеста, набор manifestmerger.enabled = истина и убедитесь, что эта линия была второй (после включения про-охранник)

  4. Обеспечены, что проект импортируется в библиотеке и правильно обеспечил, чтобы был проверен «Свойство -> путь сборки Java -> Заказ и экспорт -> SwarmConnect.jar.

Опять же, все вышеперечисленные решения поддерживают приложение отладки, но экспортируемый apk разбит различными способами.

Предлагая нижеприведенное решение.

ответ

0

Так что у меня была настроенная proguard и не указала ни одного из имен классов, чтобы сохранить в proguard-project.txt. Я тоже так давно его запомнил, что я совсем забыл об этом.

Я чувствовал себя немного глупо, потому что это та же самая причина, почему интеграция с Admob не работала в первую очередь.

Put это в вашем 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(); 
}