gpt4 book ai didi

android - 使用 Scala 合并 dex 文件时运行 Android APK 文件的问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:58:06 25 4
gpt4 key购买 nike

我一直在尝试使用 Scala 2.9.1 和 SBT 0.13 以及 Android 插件创建 Android 应用程序。
但是,运行 ProGuard 可能会非常慢。
因此,相反,当我自上次构建以来未使用任何新类/方法时,我只是尝试将 classes.dex 与我自己的 dexed android-app 类(如 MainActivity.scala等等)。

我遇到的问题(在 Android 4.0.x 上)是合并没有任何错误,但是当我尝试运行该应用程序时,我得到这个“不幸的是,MyAndroidApp 已停止”

这是 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 和其中的 classes.dex,浏览包并在那里找到 MainActivity。

任何帮助将不胜感激。

最佳答案

好的,我知道出了什么问题。

根据定义,每个 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 签名的类。

关于android - 使用 Scala 合并 dex 文件时运行 Android APK 文件的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11430515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com