【问题标题】:android app not accessible after debug调试后无法访问android应用程序
【发布时间】:2014-05-11 22:04:06
【问题描述】:

当我在我的设备(Galaxy Note 3 和 Ouya)上调试用 Android Studio 编写的应用程序时,该应用程序可以正常调试并在设备上运行,但是该应用程序从未出现在应用程序抽屉中,因此我无法在断开连接的情况下运行它设备(即在远离我的开发计算机时向其他人显示正在运行的应用程序)。我的应用程序曾经安装为可运行的应用程序,但这似乎不再发生。但是,该应用程序在应用程序管理器中列为我可以卸载、关闭等的应用程序。

为什么该应用不再出现在我的应用抽屉中?

-------------------更新--------------- ------------

这是我的清单文件

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.frd.game.GameRun"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.Main" />

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

</manifest>

------------更新---------------

我现在尝试通过 adb 命令手动安装 apk,结果完全相同(即应用出现在应用管理器中,但不在应用抽屉中)因此排除了 android studio 的问题

--------更新-----

我现在手动安装了另一个测试应用程序(据我所知不是 gradle 应用程序)并且它安装得很好,清单与我上面的几乎相同,尽管显然具有不同的包名称。

【问题讨论】:

    标签: android android-studio


    【解决方案1】:

    我能够通过临时更改应用程序的名称来解决同样的问题。

    android:label="temp"
    

    在设备上运行应用程序。检查图标现在是否显示在应用程序抽屉中。如果是这样,您应该能够将标签改回原来的名称。

    android:label="@string/app_name"
    

    【讨论】:

      【解决方案2】:

      通过拥有必要的意图过滤器,确保您拥有“默认”活动。见这里:Default Activity not found in Android Studio

      确保类别中的 MAIN 全部大写。

      如果你有一个基于 Gradle 的项目,运行

      ./gradlew installDebug

      【讨论】:

      • 是的,我有一个默认活动。该应用程序在调试中运行良好。之后它就再也没有出现在我的应用程序列表中,这在我使用 eclipse 调试时曾经发生过。使用 Eclipse 如果我断开 USB 电缆,应用程序仍然可以在设备上运行,因为它是作为普通应用程序安装的。对于 android studio,这不会发生。
      • 你有一个 活动标签吗?
      • 是的,我有分类标签
      • 我注意到android studio安装apk的远程路径也是/data/local/tmp/....是这个问题吗?
      【解决方案3】:

      在我的例子中,我指定了productFlavors,你在使用 Gradle 时必须考虑到这些。

      来自the docs

      上述任务名称中的“调试”部分只是构建变体名称的驼峰式版本,因此可以替换为您要组装或安装的任何构建变体。例如,如果您有“演示”产品风格,那么您可以使用 assembleDemoDebug 任务构建调试版本。

      首先您将运行gradlew tasks 来检查可用安装任务列表,如下所示:

      Install tasks
      -------------
      installArm7Debug - Installs the DebugArm7 build.
      installArm7DebugAndroidTest - Installs the android (on device) tests for the Arm7Debug build.
      installArm7Release - Installs the ReleaseArm7 build.
      

      然后你会运行gradlew &lt;install task&gt;,例如gradlew installArm7Debug

      【讨论】:

        猜你喜欢
        • 2010-10-13
        • 2016-09-17
        • 1970-01-01
        • 2016-04-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-04
        • 1970-01-01
        • 2013-05-21
        相关资源
        最近更新 更多