Android:无法实例化活动/ClassNotFoundException

2023-11-23

我最近向市场发布了一个应用程序,现在我收到一些用户的错误,该应用程序可能会在启动时崩溃。不幸的是,我无法直接联系他,并且该应用程序在模拟器和我的手机(以及一些朋友的手机)上运行良好。
编辑:我想这种情况发生在不止一个用户身上,因为我在市场上收到了诸如“启动时崩溃”或“不起作用”之类的评论。我只收到了这个堆栈跟踪,但没有有关配置、设备、Android 版本等信息。

该应用程序是一个简单的音板,所以实际上没有涉及任何魔法,但我不明白为什么它在某些手机上失败。这是我得到的堆栈跟踪,我希望任何人都可以帮助我:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.my.app/com.my.app.SoundMachine}: java.lang.ClassNotFoundException: com.my.app.SoundMachine in loader dalvik.system.PathClassLoader[/mnt/asec/com.my.app-1/pkg.apk]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
at android.app.ActivityThread.access$2300(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:876)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:634)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.my.app.SoundMachine in loader dalvik.system.PathClassLoader[/mnt/asec/com.my.app-1/pkg.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
... 11 more

这些是我的活动的前几行:

public class SoundMachine extends Activity {
  private SoundManager mSoundManager;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

编辑:这是(几乎)完整的 onCreate:

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    mSoundManager = new SoundManager();
    mSoundManager.initSounds(getBaseContext());

    int counter = 0;
    for (Integer soundFile : soundFiles) {
      counter++;
      mSoundManager.addSound(counter, soundFile);
    }

    ImageButton SoundButton1 = (ImageButton) findViewById(R.id.sound1);
    SoundButton1.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
        mSoundManager.playSound(1);
      }
    });
    SoundButton1.setOnLongClickListener(new OnLongClickListener() {
      public boolean onLongClick(View v) {
        saveSoundChoice(soundFiles[0], soundNames[0]);
        return true;
      }
    });

(...more of this...)

    Button StopButton = (Button) findViewById(R.id.stopbutton);
    StopButton.setOnClickListener(new OnClickListener() {
      public void onClick(View v) {
        mSoundManager.stopAll();
      }
    });
  }

这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.my.app" android:installLocation="preferExternal"
    android:versionCode="9" android:versionName="1.2">
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".SoundMachine" android:label="@string/app_name"
            android:screenOrientation="portrait">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-sdk android:minSdkVersion="3" android:targetSdkVersion="8" />
</manifest>

因此,我已经在此处和某些论坛中读到的所有可能的错误都不适用于我的应用程序。

  • 该活动存在于清单中。
  • 在重写方法中调用超级方法。
  • ContentView 在访问视图中的元素之前设置。

我知道很难在无法重现错误的情况下查明错误的根源,但也许有人有一个好主意并且可以帮助我。

一些问题:

  • 我需要清单中的“意图”部分吗?当我创建项目时 Eclipse 创建了它。(是的,根据 Mayra 的说法)
  • 是否应该在其所在位置调用超级方法?(是的,根据 Mayra 的说法)

编辑:现在剩下的主要问题是:PathClassLoader 中的路径为什么与我的包名称不同? John J Smith 发布的页面似乎处理了同样的问题,但我不明白那里应用的修复程序。

谢谢,选择0r


我通过选择解决了这个问题: 项目->属性->订单和导出

选择所有外部 jar 文件。 清理并构建它解决了问题

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:无法实例化活动/ClassNotFoundException 的相关文章

  • OnClickListener 无法解析为类型(Eclipse)

    你好 我是编程新手 我正在尝试构建我的第一个简单应用程序 我希望在按下 ImageButton 时播放一个简短的声音剪辑 在输入我的代码时 我收到语句错误 Button setOnClickListener new OnClickListe
  • 在以下情况下强制 EditText 失去焦点:按下某些键盘按键以及当用户单击活动中的其他内容时

    我知道这个问题之前已经以多种不同的方式提出过 但即使我已经查看了许多有关 EditText 焦点的其他相关问题 我还没有找到我的解决方案 这是我想要实现的目标 当用户完成编辑 EditText 后 我 希望它失去焦点 当用户点击 EditT
  • Firebase 远程配置 - 初始获取返回本地默认值

    我正在使用 Firebase 远程配置来获取远程数据 并且我的应用程序需要首次启动时的最新数据 我正在我的应用程序中进行获取和更新onCreate mFirebaseRemoteConfig fetch cacheExpiration ad
  • 如何在android模拟器中模拟加速度计? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我现在没有 Android 手机 但在我的应用程序中 我需要使用加速度计值 我怎样才能在模拟环境中做到
  • 从c#读取android上的logcat

    我正在考虑制作一个 C 程序 该程序将从 Android 设备读取 logcat 输出并将其读入 C 程序 最初 它应该在手机连接时执行此操作 并且不需要在手机上安装特定应用程序 c 程序就能够检索 logcat 输出 此外 手机不应该需要
  • Android SQLite 按 utf8 整理/排序

    我在 Android 上的 SQLite 表中有以下项目 平板电脑选项卡有 1 列 名称 文本 Beta Work pal User 如果我在 SQL Server 中有这些项目 并带有斯洛伐克语的排序规则 并且select from ta
  • 在 Android 上模拟触摸屏事件

    后台进程或软键盘是否可以创建触摸事件并将其发送到屏幕 就像屏幕被实际触摸一样 即模拟触摸屏事件 SDK里有一个工具叫Monkey http developer android com guide developing tools monke
  • 在android中快速获取当前位置

    我有一个 Android 应用程序需要设备当前位置 纬度和经度 我已经尝试了网上的一些教程 特别是堆栈溢出的一些解决方案 但它们对我来说效果不佳 我的要求非常简单 首先 我需要它速度快 并且在片段开始时需要一次位置 其次 我需要它尽可能精确
  • Android 许可证测试响应 - 从来不工作

    我一直在开发一个 Android 应用程序 该应用程序已发布到 Google Play 对于下一次更新 versionCode 3 我的客户希望包含 LVL 许可方案 我做的第一件事是设置来自许可服务器的静态测试响应 我将测试响应设置为LI
  • Android Espresso 不等待片段加载

    我刚刚开始使用 Espresso 来测试 Android 应用程序 但遇到了一些麻烦 我有一个带有按钮的活动 可以以通常的方式替换片段 public void onClick View v final FragmentTransaction
  • 可能未处理的承诺拒绝(id 0)类型错误 GET 或 HEAD 请求不允许主体

    import React from react import FlatList ActivityIndicator Text View from react native export default class FetchExample
  • 如何获取之前的碎片?

    为了在我的应用程序中重用某些片段 我需要知道哪个片段是返回堆栈上的第二个片段 为了做到这一点 我正在使用getFragmentManager getFragments 显示以下错误 但有效 FragmentManager getFragme
  • Twitter 登录说明

    我想在 Android 中创建一个 Twitter 应用程序 为此 我想创建一个登录页面并登录到 Twitter 为此 我们需要消费者密钥和消费者密钥 这是什么意思 要创建此登录页面 除了 Twitter 帐户之外 我们还需要其他任何东西吗
  • Android:使用 OAuth 访问 google 任务时出现问题

    由于 google 任务没有公共 api 我想编写解决方法并像浏览器一样请求数据 然后解析结果以进一步显示 为了访问数据 我使用 google 实现了 OAuth 身份验证来访问此 url https mail google com htt
  • Service 和 IntentService,运行从服务器轮询数据库值的服务哪个更好?

    我读过很多关于Service and IntentService 然而 当做出决定时 我没有足够的信心选择使用哪种类型来创建一个后台服务 该服务将在一定时间间隔内从数据库轮询数据 并在获得所需数据时停止它 因为数据代表请求的状态 例如 订购
  • Android 如何更改 OnTouchListener 上的按钮背景

    你好 我在 xml 中有一个按钮 我正在使用OnTouchListener在我的活动中获得button按下并释放 但问题是 当我按下按钮时背景颜色没有改变 当我延长可能的活动时OnClickListener背景正在改变 任何人都可以告诉我的
  • ffmpeg视频已压缩但无法在浏览器中播放

    我已经集成了ffmpeg4android lib 视频压缩工作正常 但视频无法在除 safari 浏览器之外的浏览器中播放 上传到服务器后 我使用了以下命令 ffmpeg y i
  • android EditText 输入类型用于 StreetNumber 字段

    我试图在地址对话框的 streetNumber 字段中选择正确的 inputType 我想先显示数字键盘 然后让用户输入字母字符 对于一些非常特殊的情况 更接近这个的是 inputType datetime 但这不允许输入字母字符 那么如何
  • 如何在手机缓存中保存用户名和密码

    我有一个用户登录应用程序 它需要用户的电子邮件和密码 我想将电子邮件和密码保存在手机缓存中 以便用户不必再次输入 有什么办法可以将数据保存在Android缓存中吗 我认为你需要使用SharedPreference用于在设备中使用应用程序时保
  • 放置在 NavigationDrawer 顶部的片段

    我正在尝试添加一个PreferenceFragment在我的应用程序中 问题是 它自动放置在我的顶部NavigationDrawer public class SetPreferenceActivity extends Activity O

随机推荐