我知道这是一个重复的问题,但我尝试的任何解决方案都没有解决问题。 真正的问题是,有没有办法在启用活动别名时启动应用程序?我的意思是,我的应用程序具有更改某些用户的图标启动器的功能,我想构建应用程序并在图标更改时启动它,因此启用了活动别名。
这是错误:
Error while executing: am start -n "SplashScreenActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=SplashScreenActivity }
Error type 3
Error: Activity class {SplashScreenActivity} does not exist.
Error while Launching activity
Failed to launch an application on all devices
这是我的清单:
<activity
android:name="SplashScreenActivity"
android:configChanges="orientation|keyboardHidden"
android:noHistory="true"
android:screenOrientation="portrait"
android:theme="@style/AppTheme.Launcher">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity-alias
android:name="SplashScreenActivityAlias"
android:icon="@mipmap/ic_launcher_prime"
android:label="@string/app_name_app"
android:enabled="false"
android:targetActivity="SplashScreenActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity-alias>
我看到一些解决方案,我需要卸载应用程序,但我想像应用程序通常那样构建和启动。
您还没有完全限定该组件,因此它不知道在哪里可以找到它。您需要提供您的
Activity
的包名称,如下所示:
am start -n "my.package.name/.SplashScreenActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
注意:我对包使用了“my.package.name”。您需要将其替换为应用程序的包名称,如清单中所示。还要注意“。” (句点、点)字符位于
SplashScreenActivity
之前的“/”(斜杠)字符之后。
当尝试创建更改图标启动器的功能时,我遇到了同样的问题。通过使缓存无效并重构导致问题的活动解决了该问题。在此更改后,应用程序安装成功。