我有一个应用程序,它基本上是我运行的web应用程序的WebView。
我最初只创建了一个包含WebView的活动(activity_main
),并一直在努力让它按需工作。
然后我决定添加第二个活动来进行一些预加载检查,例如检查活动网络连接等。
当我添加这个pre-load-checks
活动时,一切似乎都很顺利,但当应用程序在模拟器或我的设备上运行时(在设备上安装apk或通过AS运行),我的新pre-load-checks
活动就是开始的。这是可以的,因为我正在调整布局和图形等
我还没有写完pre_load_checks
,所以它还没有完成所有的检查,也没有启动第二个活动,但我需要在WebView上做更多的工作。
因此,我尝试通过更改运行/调试配置中的启动选项,将应用程序切换为在启动时启动activity_main
活动。
现在,当我尝试在我的设备上运行该应用程序时,它失败了。有时它就是不启动,有时我会收到一条消息,说我的应用程序已经停止。不过,它在模拟器中工作正常。
请注意,我在activity_main
中目前没有更改任何内容。
当我尝试运行它时,AS中的消息显示该应用程序已在我的设备上启动,没有错误。
然后,我决定尝试将activity_main
活动重命名为更合理的名称,因为它不再是启动活动。我通过布局xml的refract->rename选项将其重命名为activity_website_view
。我对关联的java文件也做了同样的操作。
经过一点清理,我设法重新编译了一些东西,但在这一过程中,发生了一些奇怪的事情——现在,如果我进入"运行/调试配置"屏幕,我新重命名的activity_website_view
和app
一起显示在树的"应用程序"分支下。此处不显示我的pre_load_checks
活动。
类似地,在允许您选择运行/调试内容的工具栏下拉菜单中,我可以选择运行app
或activity_website_view
,但不能选择运行pre_load_checks
。
这些是否相关,或者我可以直接访问其中一项活动是否正确?我可以看到我可以手动将另一个"应用程序"添加到列表中,但我想知道我在这一过程中所做的事情是否导致我的旧activty_main
被自动添加,以及这是否与为什么该活动将不再在我的设备上运行,但在模拟器上可以运行有关。
有关信息,我的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"不应该在那里,它阻止了我的设备上的启动——但非常奇怪的是,它并没有阻止它们在模拟器中运行。