You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android应用点击扫描按钮报错ActivityNotFoundException:无法找到ScanActivity

嘿,这个ActivityNotFoundException我天天见,说白了就是系统找不到你要启动的ScanActivity嘛!结合你报错里的{com.myapptest/com.scanlibrary.ScanActivity},给你几个必查的方向,按顺序来大概率能解决:

  • 第一步:检查AndroidManifest.xml里有没有注册ScanActivity
    这是最常见的原因!不管这个Activity是你自己写的还是扫描库自带的,都必须在主应用的清单文件里注册。如果是扫描库提供的com.scanlibrary.ScanActivity,你需要在AndroidManifest.xml里加上这段:

    <activity
        android:name="com.scanlibrary.ScanActivity"
        android:exported="true" <!-- Android 12+必须加这个属性,否则启动会失败 -->
        android:theme="@style/Theme.AppCompat.Light.NoActionBar" /> <!-- 可根据需求调整主题 -->
    

    注意:如果扫描库是模块依赖,要确保模块清单能被主应用合并(默认开启,若手动关闭过manifestMergerEnabled记得改回来)。

  • 第二步:检查启动ScanActivity的代码是否写错了
    看看你触发扫描按钮时的代码,是不是包名或类名拼错了?正确的启动代码示例:

    // 直接指定类名的方式
    Intent scanIntent = new Intent(this, com.scanlibrary.ScanActivity.class);
    startActivity(scanIntent);
    

    或者跨包场景用组件名方式:

    ComponentName scanComponent = new ComponentName("com.scanlibrary", "com.scanlibrary.ScanActivity");
    Intent scanIntent = new Intent();
    scanIntent.setComponent(scanComponent);
    startActivity(scanIntent);
    

    对比你代码里的包名和类名,是不是和报错里的com.scanlibrary.ScanActivity完全一致?

  • 第三步:确认扫描库和OpenCV的依赖集成正确
    依赖没加对的话,库的类根本不会被打包到APK里:

    • 本地aar/jar依赖,检查gradle里的引入代码:
      implementation files('libs/scanlibrary.aar')
      implementation files('libs/opencv-android-sdk.aar')
      
    • 远程依赖要确保地址和版本号正确,且已同步gradle。
  • 第四步:清理缓存重建项目
    有时候Android Studio的缓存会搞鬼,试试:

    1. 点击菜单栏Build -> Clean Project
    2. 再点击Build -> Rebuild Project
    3. 极端情况可删除项目根目录的.gradle和app/build文件夹,重新同步gradle。

一般来说前两步就能解决问题,尤其是清单未注册的情况!

内容的提问来源于stack exchange,提问作者madhura21

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 06:38:50