我尝试在我的应用程序中启动另一个应用程序
我尝试了2种方法。
方法1
print mystring
方法2
removed = re.sub(r'http\S*$', '', mystring) # remove the final http string.
>>> removed
'1543159687.4969957::I think I’ve gotten far enough into my experiment to give an update: Last year, Child of Humanity was free for Blac… '
方法1 给我错误:
Intent intent = new Intent(Intent.ACTION_MAIN);
ComponentName componentName = new ComponentName("com.b_app", "com.b_app.MainActivity");
intent.setComponent(componentName);
startActivity(intent);
方法2 ,Toast显示Error(我的其他条件),这意味着getPackageManager()返回null。
我在b_app中的清单
Intent intent = getPackageManager().getLaunchIntentForPackage("com.b_app");
if (intent != null) {
startActivity(intent);//null pointer check in case package name was not found
}
else Toast.makeText(this, "Error", Toast.LENGTH_SHORT).show();
我非常确定b_app已安装在我的智能手机中。
我该如何解决?
答案 0 :(得分:1)
Toast显示错误(我的其他情况),意味着getPackageManager()返回null
不。在这种情况下,您将获得NullPointerException
。对于您来说,getLaunchIntentForPackage()
返回null
。
那,加上您的其他症状,表明您没有在此设备上安装applicationId
为com.b_app
的应用程序。
答案 1 :(得分:0)
在我的情况下碰面的机会很小。 我的一个应用返回了“ getLaunchIntentForPackage”的null,并且我认识到我的应用虽然已安装,但未显示在“设备”中。 最近,我实现了Firebase Dynamic ...并且我的应用程序清单配置错误
这是错的:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.LAUNCHER" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
正确的是
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW"/>
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.BROWSABLE"/>
</intent-filter>
如果您错误地实现了应用程序清单,则用户无法安装您的应用程序...,因为Google Play“打开”按钮应用程序变得不可见