运行 来自 Android Studio 的应用无法在设备上运行,在模拟器上运行正常
Run app from Android Studio not working on device, OK on emulator
我有一个应用程序,它基本上是我 运行.
网络应用程序的 WebView
我最初只使用一个包含 WebView 的 activity (activity_main
) 创建了该应用程序,并且一直在努力让它按要求工作。
然后我决定添加第二个 activity 来做一些预加载检查,例如检查活动网络连接等。
当我添加此 pre-load-checks
activity 时,一切似乎都正常,但是当应用程序 运行 在模拟器或我的设备上(安装 apk 或 运行ning 通过设备上的 AS),我的新 pre-load-checks
activity 是第一个启动的。这没关系,因为我正在调整布局和图形等。
我还没有写完 pre_load_checks
,所以它还没有做所有的检查,也没有启动第二个 activity,但我需要做更多的工作在 WebView 上。
因此,我尝试通过更改 Run/Debug 配置中的启动选项来切换应用程序以在启动时启动 activity_main
activity。
现在,当我尝试 运行 我设备上的应用程序时,它失败了。有时它只是不启动,有时我收到一条消息说我的应用程序已停止。它在模拟器中运行正常。
请注意,此时我没有对 activity_main
进行任何更改。
当我尝试 运行 它时,AS 中的消息说该应用程序已在我的设备上启动 - 没有错误。
然后我决定尝试将 activity_main
activity 重命名为更合理的名称,因为它不再是初创公司 activity。我通过布局 xml 的重构-> 重命名选项将其重命名为 activity_website_view
。我也对相关的 java 文件做了同样的事情。
经过一些清理后,我设法让事情再次编译,但在某处发生了一些奇怪的事情 - 现在如果我进入 Run/Debug 配置屏幕,我的新重命名 activity_website_view
与 app
一起显示在树的“Applications b运行ch 下。我的 pre_load_checks
activity 没有显示在这里。
同样,在工具栏下拉菜单中,您可以选择 run/debug,我可以选择 运行 app
或 activity_website_view
,但不能选择 pre_load_checks
.
这些是否相关,或者我可以直接访问其中一项活动是否正确?我可以看到我可以手动将另一个 'application' 添加到列表中,但我想知道我在此过程中所做的某些事情是否导致我的旧 activty_main
被自动添加,这是否与为什么activity 在我的设备上将不再 运行 但在模拟器上可以。
有关信息,我的 AndroidManifest.xml 如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.nooriginalthought.bluebadgeparking">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".PreLoadChecks"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".websiteViewActivity"
android:configChanges="orientation|screenSize|keyboard|keyboardHidden"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<paction android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
根据我上面的评论,这是一个错字。
action
前面的 'p' 不应该在那里并且阻止了东西在我的设备上启动 - 但很奇怪它没有阻止它们 运行模拟器。
我有一个应用程序,它基本上是我 运行.
网络应用程序的 WebView我最初只使用一个包含 WebView 的 activity (activity_main
) 创建了该应用程序,并且一直在努力让它按要求工作。
然后我决定添加第二个 activity 来做一些预加载检查,例如检查活动网络连接等。
当我添加此 pre-load-checks
activity 时,一切似乎都正常,但是当应用程序 运行 在模拟器或我的设备上(安装 apk 或 运行ning 通过设备上的 AS),我的新 pre-load-checks
activity 是第一个启动的。这没关系,因为我正在调整布局和图形等。
我还没有写完 pre_load_checks
,所以它还没有做所有的检查,也没有启动第二个 activity,但我需要做更多的工作在 WebView 上。
因此,我尝试通过更改 Run/Debug 配置中的启动选项来切换应用程序以在启动时启动 activity_main
activity。
现在,当我尝试 运行 我设备上的应用程序时,它失败了。有时它只是不启动,有时我收到一条消息说我的应用程序已停止。它在模拟器中运行正常。
请注意,此时我没有对 activity_main
进行任何更改。
当我尝试 运行 它时,AS 中的消息说该应用程序已在我的设备上启动 - 没有错误。
然后我决定尝试将 activity_main
activity 重命名为更合理的名称,因为它不再是初创公司 activity。我通过布局 xml 的重构-> 重命名选项将其重命名为 activity_website_view
。我也对相关的 java 文件做了同样的事情。
经过一些清理后,我设法让事情再次编译,但在某处发生了一些奇怪的事情 - 现在如果我进入 Run/Debug 配置屏幕,我的新重命名 activity_website_view
与 app
一起显示在树的“Applications b运行ch 下。我的 pre_load_checks
activity 没有显示在这里。
同样,在工具栏下拉菜单中,您可以选择 run/debug,我可以选择 运行 app
或 activity_website_view
,但不能选择 pre_load_checks
.
这些是否相关,或者我可以直接访问其中一项活动是否正确?我可以看到我可以手动将另一个 'application' 添加到列表中,但我想知道我在此过程中所做的某些事情是否导致我的旧 activty_main
被自动添加,这是否与为什么activity 在我的设备上将不再 运行 但在模拟器上可以。
有关信息,我的 AndroidManifest.xml 如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.nooriginalthought.bluebadgeparking">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".PreLoadChecks"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".websiteViewActivity"
android:configChanges="orientation|screenSize|keyboard|keyboardHidden"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<paction android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
根据我上面的评论,这是一个错字。
action
前面的 'p' 不应该在那里并且阻止了东西在我的设备上启动 - 但很奇怪它没有阻止它们 运行模拟器。