getPackageManager()始终返回null

时间:2018-11-25 15:50:23

标签: android

我尝试在我的应用程序中启动另一个应用程序

我尝试了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已安装在我的智能手机中。

我该如何解决?

2 个答案:

答案 0 :(得分:1)

  

Toast显示错误(我的其他情况),意味着getPackageManager()返回null

不。在这种情况下,您将获得NullPointerException。对于您来说,getLaunchIntentForPackage()返回null

那,加上您的其他症状,表明您没有在此设备上安装applicationIdcom.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“打开”按钮应用程序变得不可见