安卓应用安装后打不开。但它可以在模拟器中运行
Posted
技术标签:
【中文标题】安卓应用安装后打不开。但它可以在模拟器中运行【英文标题】:Android app won't open after i install. But it can run in emulator 【发布时间】:2012-03-13 16:48:56 【问题描述】:我已经从 eclipse 中导出了我的应用程序并将其安装在我的手机上。安装后,我从包安装程序中单击打开,但安装程序强制关闭。之后,当我尝试启动该应用程序时,单击它后没有任何反应。我单击应用抽屉中的应用,但它返回主屏幕。
当我通过 USB 连接我的设备时,我能够在模拟器和调试模式下运行,但当我导出要安装的 apk 时却不行。
请注意,这不是我导出安装的第一个应用程序。以前的应用程序运行良好。
【问题讨论】:
【参考方案1】:我发现了问题!我已经在清单中用不同的属性声明了 2 次活动,例如:
<activity android:name=".myclass"></activity>
和
<activity android:name=".myclass" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
从清单中删除不需要的,它将起作用。
【讨论】:
【参考方案2】:检查您的安卓模拟器版本和手机的固件版本。如果该应用程序不支持固件版本,您将从 adb 安装,但您无法启动该应用程序。
检查设置以便能够在中安装未知应用 设置->应用程序和复选框“未知来源”
【讨论】:
我之前安装的所有应用程序都使用相同的 api 版本并且它们能够工作。因此,我认为这不是问题所在。 是否可以在此处粘贴 LogCat 转储? 我可以知道从哪里获得 LogCat 转储吗?唯一的问题是我将应用程序导出到apk并放入我的手机,然后我安装它,但无法打开。因此我不知道在哪里可以从手机中找到转储 以 USB 调试模式将手机与电脑连接,打开 ddms(在 eclipse 中)或 logcat 并查看日志。然后尝试通过选择它的图标来打开您的应用程序并等待错误...或者您的图标也没有显示? 这是消息:02-23 18:11:21.780: WARN/ActivityManager(147): Permission denied: checkComponentPermission() reqUid=10044 02-23 18:11:21.780: WARN/ActivityManager(147): Permission Denial: starting Intent act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=location.traffic/.LocationTrafficActivity from ProcessRecord40926bb0 225:android.process.acore/10101 (pid=225, uid=10101) requires null
【参考方案3】:
尝试在 Android Manifest 中检查权限。我之前安装 NFC 应用程序时遇到了同样的问题。我忘记授权 NFC。在我给予许可后,它对我来说很好。请检查您的 AndroidManifest。
【讨论】:
之前也检查过这个。如果是manifest的问题,应该是app在打开后强制关闭。但是我什至无法打开它。没有强制关闭或显示任何内容。【参考方案4】:我花了几天时间来确定问题发生的原因。但我以这种方式解决了我的问题-Android Manifest 中的修改
<activity android:configChanges >
<intent-filter android:label="@string/launcher_name">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
<I removed my code here that i added for reference to google play store for reference >
从清单中删除不需要的,它将起作用。
【讨论】:
【参考方案5】:尝试在您的 Android 清单中搜索错误,我遇到了同样的问题,问题是 LAUNCHER 类别中的“R”是小写的。
像这样:
<category android:name="android.intent.category.LAUNCHEr" />
解决它,很简单:
<category android:name="android.intent.category.LAUNCHER" />
【讨论】:
【参考方案6】:android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
【讨论】:
还请在您的回答中提供一些解释。【参考方案7】:删除所有不是来自应用程序的模块的配置对我有用。换句话说,只需离开Project.app
模块并检查其配置即可。
编辑运行/调试配置 -> Android 应用 -> 应用
GL
【讨论】:
【参考方案8】:如果你在 react native 中使用 splash:
为避免错误:二进制 XML 文件行 #XXX: 需要有效的 src 属性
在层列表中,使用:
<item android:drawable="@drawable/image" />
代替:
<item>
<bitmap android:src="@drawable/image"/>
</item>
【讨论】:
【参考方案9】:我的解决方案是在安装应用程序时在下载管理器中添加此标志
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
就我而言 - 我有这个标志 -> intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)
我将其替换为Intent.FLAG_ACTIVITY_NEW_TASK
,一切正常!
【讨论】:
【参考方案10】:我的清单看起来像这样。那些需要帮助并有类似清单的人如下所示。
<activity android:name=".login.activities.SplashScreenActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
<data
android:host="example.com"
android:scheme="https"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
你只需要删除
intent-filler 中的元素,它应该可以工作。
【讨论】:
以上是关于安卓应用安装后打不开。但它可以在模拟器中运行的主要内容,如果未能解决你的问题,请参考以下文章
lol盒子更新后打不开 附上图片 说postman.dll输出指令没找到 如下图