【问题标题】:Error: Activity class {} does not exist (only on specific phone)错误:活动类 {} 不存在(仅在特定手机上)
【发布时间】:2018-05-22 00:34:13
【问题描述】:

我在我的真实设备小米米 4c 上开发,没问题。然后突然(我猜是系统更新后)我在尝试运行时遇到了这个错误:

Uploading file to: /data/local/tmp/be.sebsob.red
Installing be.sebsob.red
DEVICE SHELL COMMAND: pm install -r "/data/local/tmp/be.sebsob.red"
Aborted 


Launching application: be.sebsob.red/be.sebsob.red.FullscreenActivity.
DEVICE SHELL COMMAND: am start  -n "be.sebsob.red/be.sebsob.red.FullscreenActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=be.sebsob.red/.FullscreenActivity }
Error type 3
Error: Activity class {be.sebsob.red/be.sebsob.red.FullscreenActivity} does not exist.

(这是一个新的android studio默认全屏应用,没有任何改动)

尝试过没有解决问题

  • 清理/重建项目
  • 重新导入项目
  • 删除了构建目录
  • 删除了~/.idea 和~/.gradle 目录
  • 已删除 .iml 文件
  • 将 Manifest.xml 中的活动命名从 .FullscreenActivity 更改为完整路径
  • 重启我的手机/电脑/Android Studio
  • 使用 Invalidate Caches / Restart...重新启动 Android Studio...
  • 通过 adb kill-serveradb start-server 命令重新启动 adb
  • 通过任务管理器杀死 abd 进程并重新启动
  • 在我的手机上重新启用了开发者选项
  • 撤销我手机上的 USB 调试授权

但是当我在我的其他设备(小米 Mi2S)上运行此应用程序时,它运行良好。

AND 当我在手机上手动复制 .apk(无法从 Android Studio 运行)时,它会安装并运行良好。 所以我想从Android Studio运行到我的手机时一定是一个特定的问题?可能是读/写访问权限错误吗? 有什么想法吗?

AndroidManifest.xml(默认,Android Studio 新建项目设置后未更改)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="be.sebsob.red">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity
            android:name=".FullscreenActivity"
            android:configChanges="orientation|keyboardHidden|screenSize"
            android:label="@string/app_name"
            android:theme="@style/FullscreenTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

build.gradle(模块:app)

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "be.sebsob.red"
        minSdkVersion 16
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.2.1'
    compile 'com.android.support:support-v4:23.2.1'
}

谢谢

【问题讨论】:

  • 你是不是通过adb把手机上的app删掉了,然后再安装一个新版本?
  • 您的 adb 似乎存在错误。尝试分别通过 adb kill-server 和 adb start-server 命令重新启动它。而且莫里森的回答也必须奏效。
  • @MorrisonChang 我已经在没有 adb 的情况下删除了手机上的应用程序。但是我为测试所做的新的默认简单项目以前从未在我的手机上......
  • @UğurB 当我运行 adb kill-server 它说: * server not running * 当我然后运行 ​​adb start-server 它说:* 守护程序没有运行。现在在端口 5037 上启动它 * * 守护进程已成功启动 * 但是当我运行该项目时,我仍然得到相同的初始错误
  • 我尝试使用 abd adb shell am start -a android.intent.action.DELETE -d package:be.sebsob.red 删除应用程序,但后来在我的手机上我收到一条消息:“在已安装应用列表中找不到应用”

标签: android adb android-manifest


【解决方案1】:

好的,经过长时间的研究,我发现这与 adb 无法在 我的手机上正常工作有关。我真的不知道为什么......但有关更多信息,请查看此答案:https://stackoverflow.com/a/32103016/5297218

对我个人而言,重新安装另一个(旧)ROM 版本是解决我的问题的唯一方法。

【讨论】:

  • 我也有同样的问题...你现在用的是什么版本??如果您找到其他解决方案,请 plublish :)
  • @RoberV 很抱歉回答迟了,但我的小米米 4c 上现在有稳定的 MIUI V7.2.4.0,它工作正常。
【解决方案2】:

我尝试了所有方法,但没有任何效果!非常失望!! 在三星 S8 (Android V. 8.0.0 API 26) 上运行。 只有一件事奏效了:

  1. 构建 APK(构建 -> 构建 APK)
  2. 使用普通 Android 文件传输将 .apk 文件拖放到智能手机下载文件夹中
  3. 按下并安装 .apk(它会要求更改从未知来源安装的设置)
  4. 安装应用后,您将能够从 Android Studio 运行调试。

我希望这可以帮助某人,因为我花了一段时间才弄清楚这一点。 非常非常奇怪的是,在华硕和 Pixel2 上,所有这些都不是问题。我已被删除并重新安装了多个应用程序,仅在带有 Oreo 的三星 S8 上存在问题,因此三星可能将包名称存储在某处,如果删除,则无法重新安装(我使用的删除方式是通过应用程序经理)。

【讨论】:

    猜你喜欢
    • 2020-03-06
    • 2014-01-21
    • 1970-01-01
    • 2013-11-09
    • 2017-06-14
    • 1970-01-01
    相关资源
    最近更新 更多