I'm having a similar issue, but I'm actually hosting the .apk files in
an Oracle database.  Here is a code snippet:

                Intent intent = new Intent(Intent.ACTION_VIEW);
                intent.setDataAndType(Uri.fromFile(apkFile), "application/" +
                                "vnd.android.package-archive");
                MainMenuActivity.instance.startActivity(intent);

1.  The apk is successfully saved in /sdcard/download/ with the
original filename.
2. When startActivity(intent) is called.  A "Replace application"
dialog appears (when I have never once installed the application)
saying "The application you are installing will replace another
application."  And the following log is printed:

I/ActivityManager(   52): Starting activity: Intent
{ action=android.intent.action.VIEW data=file:///sdcard/download/
MiniSpaceWarAndroidApplication.apk type=app
lication/vnd.android.package-archive
comp={com.android.packageinstaller/
com.android.packageinstaller.PackageInstallerActivity} }
D/asset   (  313): failed to open Zip archive '/sdcard/download/
MiniSpaceWarAndroidApplication.apk'

3. When the user selects "ok", the InstallAppConfirmation screen comes
up and the following log is printed:

I/ActivityManager(   52): Starting activity: Intent { data=file:///
data/data/com.android.packageinstaller/files/
MiniSpaceWarAndroidApplication.apk comp={com.and
roid.packageinstaller/
com.android.packageinstaller.InstallAppConfirmation} (has extras) }
D/asset   (  313): failed to open Zip archive '/data/data/
com.android.packageinstaller/files/MiniSpaceWarAndroidApplication.apk'
D/asset   (  313): failed to open Zip archive '/data/data/
com.android.packageinstaller/files/MiniSpaceWarAndroidApplication.apk'
I/ActivityManager(   52): Displayed activity
com.android.packageinstaller/.InstallAppConfirmation: 399 ms

4. When the user selects "Install", "Application install unsuccessful"
is displayed and the following log is printed:

I/PackageInstaller(  313): downloaded app uri=file:///data/data/
com.android.packageinstaller/files/MiniSpaceWarAndroidApplication.apk
I/ActivityManager(   52): Starting activity: Intent { data=file:///
data/data/com.android.packageinstaller/files/
MiniSpaceWarAndroidApplication.apk comp={com.and
roid.packageinstaller/com.android.packageinstaller.InstallAppProgress}
(has extras) }
I/ActivityManager(   52): Displayed activity
com.android.packageinstaller/.InstallAppProgress: 146 ms
D/asset   (   52): failed to open Zip archive '/data/app/
vmdl14442.tmp'
W/PackageParser(   52): Unable to read AndroidManifest.xml of /data/
app/vmdl14442.tmp
W/PackageParser(   52): java.io.FileNotFoundException:
AndroidManifest.xml
W/PackageParser(   52):         at
android.content.res.AssetManager.openXmlAssetNative(Native Method)
W/PackageParser(   52):         at
android.content.res.AssetManager.openXmlBlockAsset(AssetManager.java:
471)
W/PackageParser(   52):         at
android.content.res.AssetManager.openXmlResourceParser(AssetManager.java:
439)
W/PackageParser(   52):         at
android.content.pm.PackageParser.parsePackageName(PackageParser.java:
436)
W/PackageParser(   52):         at
com.android.server.PackageManagerService.installPackageLI(PackageManagerService.java:
3102)
W/PackageParser(   52):         at
com.android.server.PackageManagerService
$4.run(PackageManagerService.java:3008)
W/PackageParser(   52):         at
android.os.Handler.handleCallback(Handler.java:542)
W/PackageParser(   52):         at
android.os.Handler.dispatchMessage(Handler.java:86)
W/PackageParser(   52):         at android.os.Looper.loop(Looper.java:
123)
W/PackageParser(   52):         at
android.os.HandlerThread.run(HandlerThread.java:60)
E/PackageManager(   52): Couldn't find a package name in : /data/app/
vmdl14442.tmp
I/installd(   36): unlink /data/dalvik-cache/
[EMAIL PROTECTED]@[EMAIL PROTECTED]
I/InstallAppProgress(  313): Sleeping for 5 seconds to display screen
D/dalvikvm(   52): GC freed 5799 objects / 287216 bytes in 153ms
I/PackageInstaller(  313): downloaded app uri=file:///data/data/
com.android.packageinstaller/files/MiniSpaceWarAndroidApplication.apk
I/ActivityManager(   52): Starting activity: Intent
{ action=android.intent.action.VIEW data=file:///data/data/
com.android.packageinstaller/files/MiniSpaceWarAn
droidApplication.apk comp={com.android.packageinstaller/
com.android.packageinstaller.InstallAppDone} (has extras) }
D/dalvikvm(  313): GC freed 5228 objects / 349536 bytes in 127ms
I/ActivityManager(   52): Displayed activity
com.android.packageinstaller/.Insta
llAppDone: 304 ms

Questions:

1. Am I calling the intent with the right action? mime type?  It would
appear so.
2. Why does the "Replace application" dialog appear when the
application has never once been installed?
3. Is this method of installing non market apps allowed?

Thanks for all of the help!

- Nick

On Oct 20, 4:44 pm, Mark Hansen <[EMAIL PROTECTED]> wrote:
> Did you set the mime types .apk files on your webserver?
>
> application/vnd.android.package-archive
>
> On Oct 20, 4:41 pm, InC <[EMAIL PROTECTED]> wrote:
>
> > Here's the adb logcat output from the exception -
>
> > I/ActivityManager(   53): Displayed activity
> > com.android.packageinstaller/.InstallAppProgress: 157 ms
> > D/asset   (   53): failed to open Zip archive '/data/app/
> > vmdl17815.tmp'
> > W/PackageParser(   53): Unable to read AndroidManifest.xml of /data/
> > app/vmdl17815.tmp
> > W/PackageParser(   53): java.io.FileNotFoundException:
> > AndroidManifest.xml
> > W/PackageParser(   53):         at
> > android.content.res.AssetManager.openXmlAssetNative(Native Method)
> > W/PackageParser(   53):         at
> > android.content.res.AssetManager.openXmlBlockAsset(AssetManager.java:
> > 471)
> > W/PackageParser(   53):         at
> > android.content.res.AssetManager.openXmlResourceParser(AssetManager.java:
> > 439)
> > W/PackageParser(   53):         at
> > android.content.pm.PackageParser.parsePackageName(PackageParser.java:
> > 436)
> > W/PackageParser(   53):         at
> > com.android.server.PackageManagerService.installPackageLI(PackageManagerSer 
> > vice.java:
> > 3102)
> > W/PackageParser(   53):         at
> > com.android.server.PackageManagerService
> > $4.run(PackageManagerService.java:3008)
> > W/PackageParser(   53):         at
> > android.os.Handler.handleCallback(Handler.java:542)
> > W/PackageParser(   53):         at
> > android.os.Handler.dispatchMessage(Handler.java:86)
> > W/PackageParser(   53):         at android.os.Looper.loop(Looper.java:
> > 123)
> > W/PackageParser(   53):         at
> > android.os.HandlerThread.run(HandlerThread.java:60)
> > E/PackageManager(   53): Couldn't find a package name in : /data/app/
> > vmdl17815.tmp
> > I/installd(   36): unlink /data/dalvik-cache/
> > [EMAIL PROTECTED]@[EMAIL PROTECTED]
> > I/InstallAppProgress(  806): Sleeping for 5 seconds to display screen
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to