Intereting Posts
Не удалось установить ориентацию дисплея Как я должен кодировать, чтобы противостоять «одноразовому пиратству»? Android – экспорт программы в файл apk Общий метод не распознает общий тип при передаче его в качестве параметра Как выделить элемент списка ListView при касании? Android: как читать настройки системы для вибрации при нажатии клавиш Использование jBCrypt для соляных паролей в Android-приложении вызывает долгое зависание Перекрытие эффекта тени остается в навигационном навигационном навигаторе Включение поддержки SMS в Hangouts 2.0 приводит к перерыву BroadcastReceiver SMS_RECEIVED в моем приложении Adb over wifi убит после отключения usb? Как создать файл .s (asm) в файле Android.mk OnItemНажмите текст настройки в AutoCompleteTextView Создайте отпечаток SHA1 в студии Android 2.2 CardView выходит поверх FrameLayout, но сначала объявляется Текстовое изображение потока вокруг изображения

Проблемы с запуском файла Android APK при слиянии файлов dex с помощью Scala

Я пытался создавать приложения для Android, используя Scala 2.9.1 и SBT 0.13 и Android-Plugin.
Однако запуск ProGuard может быть очень медленным.
Итак, вместо этого, когда я не использую никаких новых классов / методов со времени предыдущей сборки, я просто пытаюсь объединить classes.dex с моими собственными классами dexed android-app (например, MainActivity.scala и т. Д.).

Проблема, которую я получаю (на Android 4.0.x), заключается в том, что слияние идет без каких-либо ошибок, но когда я пытаюсь запустить приложение, я получаю это "Unfortunately, MyAndroidApp has stopped" .

Вот журнал logcat:

  EmbeddedLogger E App crashed! Package: com.my.app v0 (0.1) 300 EmbeddedLogger E Application Label: MyAndroidApp 24137 AndroidRuntime E FATAL EXCEPTION: main 24137 AndroidRuntime E java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.my.app/com.my.app.MainActivity}: java.lang.ClassNotFoundException: com.my.app.MainActivity 24137 AndroidRuntime E at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2118) 24137 AndroidRuntime E at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2237) 24137 AndroidRuntime E at android.app.ActivityThread.access$600(ActivityThread.java:139) 24137 AndroidRuntime E at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1262) 24137 AndroidRuntime E at android.os.Handler.dispatchMessage(Handler.java:99) 24137 AndroidRuntime E at android.os.Looper.loop(Looper.java:156) 24137 AndroidRuntime E at android.app.ActivityThread.main(ActivityThread.java:5005) 24137 AndroidRuntime E at java.lang.reflect.Method.invokeNative(Native Method) 24137 AndroidRuntime E at java.lang.reflect.Method.invoke(Method.java:511) 24137 AndroidRuntime E at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 24137 AndroidRuntime E at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 24137 AndroidRuntime E at dalvik.system.NativeStart.main(Native Method) 24137 AndroidRuntime E Caused by: java.lang.ClassNotFoundException: com.my.app.MainActivity 24137 AndroidRuntime E at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 24137 AndroidRuntime E at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 24137 AndroidRuntime E at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 24137 AndroidRuntime E at android.app.Instrumentation.newActivity(Instrumentation.java:1039) 24137 AndroidRuntime E at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2109) 24137 AndroidRuntime E ... 11 more 300 ActivityManager W Force finishing activity com.my.app/.MainActivity 5864 OpenGLRenderer D Flushing caches (mode 1) 300 ViewRootImpl D @@@- disable SystemServer HW acceleration 

Я вручную открыл сгенерированный apk и class.dex внутри него, перешел через пакеты и нашел MainActivity.

Любая помощь будет оценена.

Solutions Collecting From Web of "Проблемы с запуском файла Android APK при слиянии файлов dex с помощью Scala"

Хорошо, я понял, что случилось.

По определению, каждый класс Scala реализует scala.ScalaObject .
Мой dexed com.my.app.MainActivity также реализовал scala.ScalaObject .

Однако, поскольку у меня не было scala.ScalaObject как часть моего предыдущего файла classes.dex , и я не включил его в новый, DVM не найдет класс с подписью public class com.my.app.MyAndroidApp extends android.app.Activity implements com.my.app.TypedActivity with scala.ScalaObject .

Мое лучшее предположение – дальвик почему-то отвергает класс. Вы хотите посмотреть в logcat примерно в то время, когда вы устанавливали приложение, и искать любые сообщения из dalvik. Он напечатает краткое сообщение о том, что класс отвергает и почему.