0

我试图将 LogCollector 包含到我的应用程序中,并使用了这个站点的集成示例

http://code.google.com/p/android-log-collector/source/browse/trunk/android-log-collector-usage/src/com/xtralogic/android/logcollector/usage/Main.java

但是当我尝试在我的应用程序中使用它时,它正确显示它没有安装

http://pbrd.co/VVD1Bx

但是在尝试打开市场时它崩溃了,这是日志输出

    01-10 20:38:04.309: E/AndroidRuntime(3265): FATAL EXCEPTION: main
    01-10 20:38:04.309: E/AndroidRuntime(3265): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=market://search?q=pname:com.xtralogic.android.logcollector flg=0x10000000 }
    01-10 20:38:04.309: E/AndroidRuntime(3265):     at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1408)
    01-10 20:38:04.309: E/AndroidRuntime(3265):     at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378)
    01-10 20:38:04.309: E/AndroidRuntime(3265):     at android.app.Activity.startActivityForResult(Activity.java:2817)
    01-10 20:38:04.309: E/AndroidRuntime(3265):     at android.app.Activity.startActivity(Activity.java:2923)
    01-10 20:38:04.309: E/AndroidRuntime(3265):     at de.srs.android.pdixuploader.activies.SettingsActivity$1.onClick(SettingsActivity.java:102)
    01-10 20:38:04.309: E/AndroidRuntime(3265):     at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158)
    01-10 20:38:04.309: E/AndroidRuntime(3265):     at android.os.Handler.dispatchMessage(Handler.java:99)
    01-10 20:38:04.309: E/AndroidRuntime(3265):     at android.os.Looper.loop(Looper.java:123)
    01-10 20:38:04.309: E/AndroidRuntime(3265):     at android.app.ActivityThread.main(ActivityThread.java:4627)
    01-10 20:38:04.309: E/AndroidRuntime(3265):     at java.lang.reflect.Method.invokeNative(Native Method)
    01-10 20:38:04.309: E/AndroidRuntime(3265):     at java.lang.reflect.Method.invoke(Method.java:521)
    01-10 20:38:04.309: E/AndroidRuntime(3265):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    01-10 20:38:04.309: E/AndroidRuntime(3265):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    01-10 20:38:04.309: E/AndroidRuntime(3265):     at dalvik.system.NativeStart.main(Native Method)

这可能是什么原因?我正在模拟器上测试这个。

谢谢

4

1 回答 1

3

这是因为它试图在 Google Play 上打开应用程序页面,而模拟器没有安装 Google Play。

因此,没有应用程序来处理market://URI 方案,导致ActivityNotFoundException.

您的链接可以在安装了 Google Play 的设备上找到。请记住,从 Android 4.2 开始,LogCollector 不再能够访问其他应用程序的日志(或任何其他日志记录应用程序,除非它在根设备上具有根权限)。

您可以使用以下方法检查设备是否安装了 Google Play:

public boolean hasGooglePlayInstalled() {
    Intent market = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=dummy"));
    PackageManager manager = mContext.getPackageManager();
    List<ResolveInfo> list = manager.queryIntentActivities(market, 0);

    if (list != null && list.size() > 0) {
        for (int i = 0; i < list.size(); i++) {
            if (list.get(i).activityInfo.packageName.startsWith("com.android.vending") == true) {
                return true;
            }
        }
     }
    return false;
}
于 2013-01-10T20:44:17.667 回答