从Android Studio运行应用程序在设备上不工作,在模拟器上正常



我有一个应用程序,它基本上是我运行的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_viewapp一起显示在树的"应用程序"分支下。此处不显示我的pre_load_checks活动。

类似地,在允许您选择运行/调试内容的工具栏下拉菜单中,我可以选择运行appactivity_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"不应该在那里,它阻止了我的设备上的启动——但非常奇怪的是,它并没有阻止它们在模拟器中运行。

最新更新