2010-11-23 7 views
1

모두 코드에 apk 파일을 설치하는 데 문제가 있습니다. 누군가 내가 잘못한 것을 발견 할 수 있었는지 궁금합니다. 내가하려는 것은 프로그램에서 Check Upgrade 기능을 사용하는 것입니다. 사용자가 그것을 클릭하면 웹 서버에 요청을 보내고 최신 버전이 무엇인지 찾아냅니다. 저는 versionName 앱을 사용하여 2010.11.23과 같은 버전을 스탬프 처리합니다. Manifest.xml 파일에서 버전 코드를 사용하지 않습니다. 그래서 우리의 프로그램이 새로운 APK 파일 설치하려면 다음 코드를 사용 후 최신의 다운로드 및 것, 최신 버전 이름 자체보다 이후 본다 : 나는 버전 이름을 변경하는 경우,안드로이드에서 Package Installer로 apk 파일을 설치하지 못했습니다?

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.fromFile(strNewAPKFile),"application/vnd.android.package-archive"); 
this.startActivity(intent); 

지금과 같은를 매번, apk 파일을 설치하는 데 실패합니다. 파일을 잘 다운로드합니다. 나는 이유를 정확히 모른다. 때로는 Eclips에서 디버그를 클릭하면 "다른 응용 프로그램 서명으로 인해 다시 설치하지 못했습니다"라는 오류가 발생합니다. 이 오류로 인해 설치 실패가 발생했는지 여부는 알 수 없습니다.

  1. 해야한다는 업그레이드 논리 작업 :

    그래서, 내 질문처럼 보인다? 그것이 VersoinName과 관련이 있는지 궁금합니다.

  2. 응용 프로그램 서명이 변경 될 수있는 원인은 무엇입니까? (나는 우리 서버에 올려 놓기 전에 프로그램에 서명을 했었지만, 항상 다른 versionName에 대해 동일한 키 파일을 사용합니다.)

모든 입력을 환영합니다.

답변

0

앱을 만들 때마다 앱에 서명됩니다. Eclipse로 생성하면 자동으로 디버그 키로 서명됩니다. 컴퓨터를 전환하면 다른 키가있을 가능성이 높습니다. 서명하지 않은 앱을 내 보낸 다음 자신의 키로 서명하면 자체 키가 생깁니다. 각 키는 호환되지 않으므로 앱을 제거하고 다시 설치해야합니다.

+0

버전 업그레이드 부분에서는 Eclipse에서 내 보낸 동안 항상 내 자신의 키로 서명합니다. 그래서, 아마도 같은 열쇠를 가져야합니다. – user518138

+0

음, 어떤 시점에서 다른 키를 사용하고 있거나 그렇지 않으면 오류 메시지가 표시되지 않습니다. "디버그"를 누르면 디버그 키로 서명되므로 다른 키입니다. – EboMike

+0

하, 감사합니다. 마이크, 네 말이 맞아. 디버그에서는 자체 디버그 키를 사용합니다. 내 업그레이드 부분에서 항상 내 자신의 키를 사용하면 제대로 작동하는 것 같습니다. – user518138

관련 문제