2016-04-25 6 views
0

を発生します。は私がDownloadManager.ACTION_DOWNLOAD_COMPLETEを使用しますが、私は後にアンドロイド</p> <p>にAPKをインストールするが、私はAPKをインストールするとき、それはActivityNotFoundExceptionを示し、私のサーバーにAPKを取得したいActivityNotFoundException

おそらく、許可問題ですか?

<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

おかげで 私はIntentにパッケージ名を設定しながら、あなたはタイプミスを持っていると思います。このソース

public class MainActivity extends AppCompatActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Button btn = (Button) findViewById(R.id.btn); 
     btn.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       String url = "myserver/apk"; 
       File apkFile = new File("/sdcard/Download/openapk.apk"); 

      Uri mUri = Uri.parse(url); 
      DownloadManager.Request r = new DownloadManager.Request(mUri); 
      r.setDestinationInExternalPublicDir(Environment.DIRECTORY_DOWNLOADS, "openapk.apk"); 
      r.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); 
      DownloadManager dm = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); 
      dm.enqueue(r); // 
      } 
     }); 
    } 
private BroadcastReceiver completeReceiver = new BroadcastReceiver() { 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     File apkFile = new File("/sdcard/Download/openapk.apk"); 
     Uri apkUri = Uri.fromFile(apkFile); 
     Intent webIntent = new Intent(Intent.ACTION_VIEW); 
     webIntent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.pacvkage-archive"); 
     webIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(webIntent); //ActivityNotFoundException 
    } 
}; 

@Override 
public void onResume() { 
    super.onResume(); 
    IntentFilter completeFilter = 
      new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE); 
    registerReceiver(completeReceiver, completeFilter); 
} 
} 





FATAL EXCEPTION: main 
                     Process: company.co.kr.urlupdater, PID: 23341 
                     java.lang.RuntimeException: Error receiving broadcast Intent { act=android.intent.action.DOWNLOAD_COMPLETE flg=0x10 pkg=company.co.kr.urlupdater (has extras) } in [email protected] 
                      at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:769) 
                      at android.os.Handler.handleCallback(Handler.java:733) 
                      at android.os.Handler.dispatchMessage(Handler.java:95) 
                      at android.os.Looper.loop(Looper.java:136) 
                      at android.app.ActivityThread.main(ActivityThread.java:5001) 
                      at java.lang.reflect.Method.invokeNative(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:515) 
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
                      at dalvik.system.NativeStart.main(Native Method) 
                     Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///sdcard/Download/openapk.apk typ=application/vnd.android.pacvkage-archive flg=0x10000000 } 
                      at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1632) 
                      at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424) 
                      at android.app.Activity.startActivityForResult(Activity.java:3424) 
                      at android.app.Activity.startActivityForResult(Activity.java:3385) 
                      at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:843) 
                      at android.app.Activity.startActivity(Activity.java:3627) 
                      at android.app.Activity.startActivity(Activity.java:3595) 
                      at company.co.kr.urlupdater.MainActivity$2.onReceive(MainActivity.java:64) 
                      at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:759) 
                      at android.os.Handler.handleCallback(Handler.java:733)  
                      at android.os.Handler.dispatchMessage(Handler.java:95)  
                      at android.os.Looper.loop(Looper.java:136)  
                      at android.app.ActivityThread.main(ActivityThread.java:5001)  
                      at java.lang.reflect.Method.invokeNative(Native Method)  
                      at java.lang.reflect.Method.invoke(Method.java:515)  
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)  
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)  
                      at dalvik.system.NativeStart.main(Native Method)  
+0

あなたがMarshmallowで開発した場合、実行時のアクセス許可の要求が必要です.... – Opiatefuchs

+0

そのエラーの多くの理由がある可能性があります。マニフェストを投稿できますか? – Opiatefuchs

+0

@Opiatefuchsありがとうございました。しかし、私はkitkatを使用しています –

答えて

1

私のため

をアドバイスをしてください。 "application/vnd.android.pa ck age-archive"である必要があります。だから、全体のラインは次のようになります。

間違ったパッケージを与える原因あなたは、 ActivityNotFoundExceptionを得て、適切な Activityを見つけることができない理由です
webIntent.setDataAndType(Uri.fromFile(apkFile), "application/vnd.android.package-archive"); 

+0

hah。 ...イーグルアイrom4ek ..... :) – Opiatefuchs

+0

ああ:(......私はミス...私はpacvkageを命じ....私は試した後に変更します。 –

関連する問題