gpt4 book ai didi

android - 更改 Android 别名会产生 "App has stopped working"错误,即使它在 Android API 25 的模拟器中正确更改了它

转载 作者:行者123 更新时间:2023-11-29 02:26:58 24 4
gpt4 key购买 nike

我有以下代码将我的应用程序及其相关图标的默认名称更改为新名称和图标。

try {

getPackageManager().setComponentEnabledSetting(
new ComponentName("com.applications.social.myapp", "com.applications.social.myapp.MainActivityFlavorOne"),
PackageManager.COMPONENT_ENABLED_STATE_ENABLED, PackageManager.DONT_KILL_APP);


getPackageManager().setComponentEnabledSetting(
new ComponentName("com.applications.social.myapp", "com.applications.social.myapp.MainActivityFlavorZero"),
PackageManager.COMPONENT_ENABLED_STATE_DISABLED, PackageManager.DONT_KILL_APP);


} catch (Exception ex) {

}


try {
Thread.sleep(10000);
} catch (InterruptedException e) {
e.printStackTrace();
}
catch (Exception e)
{

}

另一方面,这是在 list 文件中定义别名的方式:

   <activity-alias
android:screenOrientation="portrait"
android:name=".MainActivityFlavorZero"
android:label="MyLabel"
android:icon="@mipmap/notification_icon"
android:enabled="true"
android:targetActivity="com.applications.social.myapp.InstallationActivity"
android:windowAnimationStyle="@null"
android:windowBackground="@color/common_google_signin_btn_text_dark"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>



<activity-alias
android:screenOrientation="portrait"
android:label="MyLabel2"
android:name=".MainActivityFlavorOne"
android:enabled="false"
android:icon="@mipmap/lantern"
android:targetActivity="com.applications.social.myapp.InstallationActivity"
android:windowAnimationStyle="@null"
android:windowBackground="@color/common_google_signin_btn_text_dark"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity-alias>

有几件事让我认为这是一个模拟器错误而不是代码中的错误,这些是:

1) 到目前为止,问题出现在 Android API 25 的模拟器中,但相同的代码在具有 API 19 和 23 的物理设备以及具有 API 22 和 24 的模拟器中工作正常。

2) 相反的代码(将从 MainActivityFlavorOne 更改为 MainActivityFlavorZero 的代码)始终有效。

3) 错误从第一次设置更改 MainActivityFlavorOne 时发生,在第一次设置时它总是有效。

4) 即使出现错误,应用程序的图标和名称在应用程序屏幕中已更改(并且确实提供了其所需的行为),所以并不是代码不能用于实际目的,只是错误一旦代码预期的其余行为发生,无论如何都会出现。

但无论如何,我想看看是否有人遇到过类似的问题,并且可以提出解决错误的方法。

最佳答案

好吧,我不会称这完全是一个“真正的”解决方案,但对我来说已经足够了。

通过将目标 sdk 版本设置为 24 并使用它构建应用程序不会再出现该错误,因此很明显这是依赖于 API 的。

关于android - 更改 Android 别名会产生 "App has stopped working"错误,即使它在 Android API 25 的模拟器中正确更改了它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51727213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com