2012-05-03 48 views
1

我正嘗試以編程方式安裝apk文件。我提到這個site這樣做。解析錯誤 - 以編程方式安裝apk

現在,apk文件從網址下載並放入SDCard中。當我嘗試在設備上安裝使用意向方法,

它彈出以下錯誤

模擬器:

"Parse Error - There is a problem parsing the package", 
Logcat(W) : "Unable to read AndroidManifest.xml of /mnt/sdcard/download/myapp.apk", 
Logcat(W) : "java.ioException: AndroidManifest.xml", 
Logcat(W) : "Parse error when parsing manifest. Discontinuing installation". 
Logcat(E) : "java.lang.SecurityException", 
Logcat(E) : "java.lang.NullPointerException". 

注:1)我可以安裝相同的.apk文件使用adb。 2)我將此.apk文件更改爲.pdf格式,然後將其發送給服務器組,然後將其更改回.apk。我加入這個因爲格式轉換可能會有錯誤的機會。

+1

看起來像你的APK的問題。檢查是否可以從服務器下載並通過adb安裝下載的文件。 – Rajesh

+0

非常感謝Rajesh,我會做到這一點,並讓你發佈:) – ayachama

+0

哎呦:沒有找到預期的簽名,read_centraldirectory_entry_failed,文件'C:\ APK \ MyApp.apk'不是有效的zip文件。這是我在嘗試安裝時在cmd中得到的,但是當我將apk安裝在項目/ bin /中時,我能夠安裝該應用程序。 – ayachama

回答

0

請檢查該代碼

private void installApk(){ 
          Intent intent = new Intent(Intent.ACTION_VIEW); 
          Uri uri = Uri.fromFile(new File("/sdcard/path")); 
          intent.setDataAndType(uri, "application/vnd.android.package-archive"); 
          startActivity(intent);} 
1

安裝可以提供至少指定的錯誤包括以下情況:

  • 包的名稱是簽訂後改變:使用確切名稱 已簽名的包是(替代地,在清單中調整名稱)

  • 包編譯針對更高級別的API:從手機內存運行(安裝)APK -file 或使用亞行:更正清單文件中的API 水平

  • 包從SD卡執行命令來安裝它