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 に答える