2016-05-16 82 views
2

我有一個應用程序在生產和過去24小時我收到了像一個用戶(每小時3-4個)50次崩潰的東西。ActivityNotFoundException:沒有發現活動發現處理意圖sospicious行爲

Fabric將設備類型標記爲「sdk」,OS版本始終爲4.1.1。

這是堆棧跟蹤:

Fatal Exception: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=market://details?id=com.google.android.gms&pcampaignid=gcore_8487000--- flg=0x80000 pkg=com.android.vending } 
    at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1545) 
    at android.app.Instrumentation.execStartActivity(Instrumentation.java:1416) 
    at android.app.Activity.startActivityForResult(Activity.java:3351) 
    at android.app.Activity.startActivityForResult(Activity.java:3312) 
    at android.support.v4.app.FragmentActivity.startActivityForResult(SourceFile:843) 
    at android.app.Activity.startActivity(Activity.java:3522) 
    at android.app.Activity.startActivity(Activity.java:3490) 
    at com.google.android.gms.dynamic.zza$5.onClick(Unknown Source) 
    at android.view.View.performClick(View.java:4084) 
    at android.view.View$PerformClick.run(View.java:16966) 
    at android.os.Handler.handleCallback(Handler.java:615) 
    at android.os.Handler.dispatchMessage(Handler.java:92) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:4745) 
    at java.lang.reflect.Method.invokeNative(Method.java) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
    at dalvik.system.NativeStart.main(NativeStart.java) 

沒有我的包名的跡象,看起來像應用程序試圖打開一個內部的意圖,而我沒有控制權。

這可能是沒有Google Play商店的用戶/機器人嗎?

回答

3

好的,所以發生的事情是,您的應用程序崩潰的設備不包含任何應用程序來處理從您的應用程序發送的隱式意圖。

這意味着什麼,在你的代碼的某個地方,你可能已經發送了一個隱含的意圖和一個View動作。現在,當它在設備上運行時,它不包含任何解決視圖意圖的活動,它會崩潰。在開始活動之前,您應該始終檢查您的代碼發送的意圖是否可以由設備上的其他應用程序處理。喜歡的東西:

Intent sendIntent = new Intent(); 
sendIntent.setAction(Intent.ACTION_SEND); 
sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage); 
sendIntent.setType("text/plain"); 

// Verify that the intent will resolve to an activity 
if (sendIntent.resolveActivity(getPackageManager()) != null) { 
    startActivity(sendIntent); 
} 

正如你在上面的代碼中看到,resolveActivity()方法正在開始活動之前調用。如果android沒有找到任何能夠處理您的意圖的應用程序,它將返回null,然後您可以放置​​其他條件並優雅地處理這種情況。我從日誌中收集到的信息是,您可能已經發送了一個意圖,使用ACTION_VIEW可能會從您的應用程序查看系統找到的任何其他應用程序中的某個項目。

來源:https://developer.android.com/guide/components/intents-filters.html

+0

@ 1911z,請標記爲接受的,如果它的工作.... –

相關問題