Coder Social home page Coder Social logo

phonegap-xapkreader's People

Contributors

moust avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

phonegap-xapkreader's Issues

How do we get non-image files?

Is it possible with this plugin? Trying to read audio, .json, and .css files just seems to crash everything.

Edit: Here's a log.

E/AndroidProtocolHandler( 4344): Unable to open content URL: content://org.apache.cordova.xapkreader.expansion/sets/safari/safari.json
W/System.err( 4344): java.lang.NullPointerException
W/System.err( 4344):    at com.android.vending.expansion.zipfile.APEZProvider.openAssetFile(APEZProvider.java:182)
W/System.err( 4344):    at android.content.ContentProvider.openTypedAssetFile(ContentProvider.java:1393)
W/System.err( 4344):    at android.content.ContentProvider.openTypedAssetFile(ContentProvider.java:1459)
W/System.err( 4344):    at android.content.ContentProvider$Transport.openTypedAssetFile(ContentProvider.java:342)
W/System.err( 4344):    at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1067)
I/chromium( 4344): [INFO:library_loader_hooks.cc(112)] Chromium logging enabled: level = 0, default verbosity = 0
W/System.err( 4344):    at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:907)
W/System.err( 4344):    at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:834)
W/System.err( 4344):    at org.apache.cordova.CordovaResourceApi.openForRead(CordovaResourceApi.java:269)
W/System.err( 4344):    at org.apache.cordova.IceCreamCordovaWebViewClient.shouldInterceptLoadRequest(IceCreamCordovaWebViewClient.java:64)
W/System.err( 4344):    at org.xwalk.core.XWalkResourceClient.shouldInterceptLoadRequest(XWalkResourceClient.java:199)
W/System.err( 4344):    at org.xwalk.core.internal.XWalkContentsClientBridge.shouldInterceptRequest(XWalkContentsClientBridge.java:204)
W/System.err( 4344):    at org.xwalk.core.internal.XWalkContent$XWalkIoThreadClientImpl.shouldInterceptRequest(XWalkContent.java:505)
W/System.err( 4344):    at dalvik.system.NativeStart.run(Native Method)
I/BrowserProcessMain( 4344): Initializing chromium process, renderers=0
F/chromium( 4344): [FATAL:jni_android.cc(216)] Check failed: false.
F/libc    ( 4344): Fatal signal 6 (SIGABRT) at 0x000010f8 (code=-6), thread 4395 (Chrome_IOThread)

Edit:
Possibly fixed THAT one (will mention how later if this pans out), but here's another one:

E/FileSource( 2009): Failed to open file '/storage/emulated/0/content://org.apac
he.cordova.xapkreader.expansion/sets/safari/audio/rdn056.mp3'. (No such file or
directory)

Note that I am using the Media plugin on this.

Multiple Apps, Same Device

A have been able to successfully implement this plugin in my cordova app.
My app however has a free and paid version and I have now noticed that this "provider" cannot be used in two seperate apps on the same device.
Please advise.

moust/psyon plugin and SplashScreen problem

Hi guys.
I have a problem with this plugin and the app splash screen.
The splash screen won't work anymore when I install this. When the app starts, it will display the homepage instantly.
To make the splash screen to work again, I have to install the splashscreen plugin from phonegap (cordova plugin add org.apache.cordova.splashscreen), then I have to add some code lines in index.html and in confing.xml. But after that, when app starts it won't display the splash screen from beginning..I mean, the app starts, a blank screen is displayed for 0.5 - 1 second then the splash appears. Sometimes instead of that blank screen i can see the homepage which is initializing.
I want to ask you guys if you know what's the conflict is?
If you need more info ask please.
Thank you.

Error may you not purchase the app

Thanks for the plugin, but I find some problem. I have uploaded my app in playstore, and obb file had downloaded, but when I open my app, I get Error : you may not have purchase this app. I checked the versionCode, fileSize, public_key, but the Error still show up. I hope you can help me to solved this problem

tutorial please

i can't set it up

can you provide example project and step by step instruction of making that example
i can't understend how to test it before uploading to play store
also i can't build the project with this plugin

console output when i try cordova run android

-compile:
    [javac] Compiling 51 source files to C:\Users\cotne\Desktop\phonegap workspa
ce\cordova\tbonline_play\platforms\android\ant-build\classes
    [javac] warning: [options] source value 1.5 is obsolete and will be removed
in a future release
    [javac] warning: [options] target value 1.5 is obsolete and will be removed
in a future release
    [javac] warning: [options] To suppress warnings about obsolete options, use
-Xlint:-options.
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:1
9: error: package com.android.vending.expansion.downloader does not exist
    [javac] import com.android.vending.expansion.downloader.R;
    [javac]                                                ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\impl\DownloadN
otification.java:19: error: package com.android.vending.expansion.downloader doe
s not exist
    [javac] import com.android.vending.expansion.downloader.R;
    [javac]                                                ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\impl\V14Custom
Notification.java:19: error: package com.android.vending.expansion.downloader do
es not exist
    [javac] import com.android.vending.expansion.downloader.R;
    [javac]                                                ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\impl\V3CustomN
otification.java:19: error: package com.android.vending.expansion.downloader doe
s not exist
    [javac] import com.android.vending.expansion.downloader.R;
    [javac]                                                ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\org\apache\cordova\xapkreader\XAPKDownloaderActivity.java:3: e
rror: package io.cordova.hellocordova does not exist
    [javac] import io.cordova.hellocordova.R;
    [javac]                               ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:2
66: error: package R does not exist
    [javac]                 return R.string.state_idle;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:2
68: error: package R does not exist
    [javac]                 return R.string.state_fetching_url;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:2
70: error: package R does not exist
    [javac]                 return R.string.state_connecting;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:2
72: error: package R does not exist
    [javac]                 return R.string.state_downloading;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:2
74: error: package R does not exist
    [javac]                 return R.string.state_completed;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:2
76: error: package R does not exist
    [javac]                 return R.string.state_paused_network_unavailable;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:2
78: error: package R does not exist
    [javac]                 return R.string.state_paused_by_request;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:2
80: error: package R does not exist
    [javac]                 return R.string.state_paused_wifi_disabled;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:2
82: error: package R does not exist
    [javac]                 return R.string.state_paused_wifi_unavailable;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:2
84: error: package R does not exist
    [javac]                 return R.string.state_paused_wifi_disabled;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:2
86: error: package R does not exist
    [javac]                 return R.string.state_paused_wifi_unavailable;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:2
88: error: package R does not exist
    [javac]                 return R.string.state_paused_roaming;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:2
90: error: package R does not exist
    [javac]                 return R.string.state_paused_network_setup_failure;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:2
92: error: package R does not exist
    [javac]                 return R.string.state_paused_sdcard_unavailable;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:2
94: error: package R does not exist
    [javac]                 return R.string.state_failed_unlicensed;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:2
96: error: package R does not exist
    [javac]                 return R.string.state_failed_fetching_url;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:2
98: error: package R does not exist
    [javac]                 return R.string.state_failed_sdcard_full;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:3
00: error: package R does not exist
    [javac]                 return R.string.state_failed_cancelled;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\Helpers.java:3
02: error: package R does not exist
    [javac]                 return R.string.state_unknown;
    [javac]                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\impl\DownloadN
otification.java:93: error: package R does not exist
    [javac]                     stringDownloadID = R.string.state_unknown;
    [javac]                                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\impl\V14Custom
Notification.java:70: error: package R does not exist
    [javac]         builder.setContentInfo(c.getString(R.string.time_remaining_n
otification,
    [javac]                                             ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\impl\V3CustomN
otification.java:76: error: package R does not exist
    [javac]                 R.layout.status_bar_ongoing_event_progress_bar);
    [javac]                  ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\impl\V3CustomN
otification.java:78: error: package R does not exist
    [javac]         expandedView.setTextViewText(R.id.title, mTitle);
    [javac]                                       ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\impl\V3CustomN
otification.java:80: error: package R does not exist
    [javac]         expandedView.setViewVisibility(R.id.description, View.VISIBL
E);
    [javac]                                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\impl\V3CustomN
otification.java:81: error: package R does not exist
    [javac]         expandedView.setTextViewText(R.id.description,
    [javac]                                       ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\impl\V3CustomN
otification.java:83: error: package R does not exist
    [javac]         expandedView.setViewVisibility(R.id.progress_bar_frame, View
.VISIBLE);
    [javac]                                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\impl\V3CustomN
otification.java:84: error: package R does not exist
    [javac]         expandedView.setProgressBar(R.id.progress_bar,
    [javac]                                      ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\impl\V3CustomN
otification.java:88: error: package R does not exist
    [javac]         expandedView.setViewVisibility(R.id.time_remaining, View.VIS
IBLE);
    [javac]                                         ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\impl\V3CustomN
otification.java:90: error: package R does not exist
    [javac]                 R.id.time_remaining,
    [javac]                  ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\impl\V3CustomN
otification.java:91: error: package R does not exist
    [javac]                 c.getString(R.string.time_remaining_notification,
    [javac]                              ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\impl\V3CustomN
otification.java:93: error: package R does not exist
    [javac]         expandedView.setTextViewText(R.id.progress_text,
    [javac]                                       ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\com\google\android\vending\expansion\downloader\impl\V3CustomN
otification.java:95: error: package R does not exist
    [javac]         expandedView.setImageViewResource(R.id.appIcon, mIcon);
    [javac]                                            ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\org\apache\cordova\xapkreader\XAPKDownloaderActivity.java:92:
error: package R does not exist
    [javac]                     mProgressDialog.setMessage(getResources().getStr
ing(R.string.downloading_assets));
    [javac]
     ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\org\apache\cordova\xapkreader\XAPKDownloaderActivity.java:176:
 error: package R does not exist
    [javac]                 mProgressDialog.setMessage(getResources().getString(
R.string.preparing_assets));
    [javac]
 ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\org\apache\cordova\xapkreader\XAPKDownloaderActivity.java:188:
 error: package R does not exist
    [javac]                 alert.setTitle(getResources().getString(R.string.err
or));
    [javac]                                                          ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\org\apache\cordova\xapkreader\XAPKDownloaderActivity.java:189:
 error: package R does not exist
    [javac]                 alert.setMessage(getResources().getString(R.string.d
ownload_failed));
    [javac]                                                            ^
    [javac] C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\plat
forms\android\src\org\apache\cordova\xapkreader\XAPKDownloaderActivity.java:190:
 error: package R does not exist
    [javac]                 alert.setNeutralButton(getResources().getString(R.st
ring.close), null);
    [javac]                                                                  ^
    [javac] Note: Some input files use or override a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.
    [javac] 42 errors
    [javac] 3 warnings

BUILD FAILED
D:\adt\sdk\tools\ant\build.xml:720: The following error occurred while executing
 this line:
D:\adt\sdk\tools\ant\build.xml:734: Compile failed; see the compiler error outpu
t for details.

Total time: 6 seconds

C:\Users\cotne\Desktop\phonegap workspace\cordova\tbonline_play\platforms\androi
d\cordova\node_modules\q\q.js:126
                    throw e;
                          ^
Error code 1 for command: cmd with args: /s,/c,ant,debug,-f,C:\Users\cotne\Deskt
op\phonegap workspace\cordova\tbonline_play\platforms\android\build.xml,-Dout.di
r=ant-build,-Dgen.absolute.dir=ant-gen
Error: cmd: Command failed with exit code 8
    at ChildProcess.whenDone (C:\Users\cotne\AppData\Roaming\npm\node_modules\co
rdova\node_modules\cordova-lib\src\cordova\superspawn.js:131:23)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Process.ChildProcess._handle.onexit (child_process.js:802:5)

Extremely slow access speed.

I made my expansion file a store. I'm using psyon's fork. The access speed is extremely slow. I don't understand it... it isn't unzipping anything, is it?

Installing error

Hi. I'm a newbie with phonegap. I'm building an app which will be more than 50mb. So, I searched for a method to slice the app and I found this one.

But the problem is that I can't fully understand the installation process.
When I try to run --> cordova plugin add org.apache.cordova.xapkreader --variable MAIN_VERSION=1 --variable PATCH_VERSION=1 --variable FILE_SIZE=1095520 <-- I get the following error in CMD:

d:\workspace\blabla>cordova plugin add org.apache.cordova.xapkre
ader
Fetching plugin "org.apache.cordova.xapkreader" via plugin registry
Error: 404 Not Found: org.apache.cordova.xapkreader
at RegClient. (C:\Users\Adrian\AppData\Roaming\npm\node_modules\c
ordova\node_modules\cordova-lib\node_modules\npm\node_modules\npm-registry-clien
t\lib\request.js:268:14)
at Request.self.callback (C:\Users\Adrian\AppData\Roaming\npm\node_modules\c
ordova\node_modules\cordova-lib\node_modules\npm\node_modules\request\index.js:1
48:22)
at Request.emit (events.js:98:17)
at Request. (C:\Users\Adrian\AppData\Roaming\npm\node_modules\cor
dova\node_modules\cordova-lib\node_modules\npm\node_modules\request\index.js:876
:14)
at Request.emit (events.js:117:20)
at IncomingMessage. (C:\Users\Adrian\AppData\Roaming\npm\node_mod
ules\cordova\node_modules\cordova-lib\node_modules\npm\node_modules\request\inde
x.js:827:12)
at IncomingMessage.emit (events.js:117:20)
at _stream_readable.js:929:16
at process._tickCallback (node.js:419:13)

can you help me please?

Thank you

xapkreader PLUGIN: FAILED TO BUILD

Hi,
I have a PhoneGap App, and I’m using PhoneGap Build. Recently I wanted to add an APK expansion of my file, since my App size > 50MB.
Apparently PhoneGap Build doesn’t have a plugin to manage an APK expansion file for android I was forced to use cordova CLI because there is a plugin called xapkreader.
Now I am using cordova CLI, My App is well compiled and everything going well. Now I added this plugin and it is fine. The problems begin when I reference the 2 libraries Downloader Library and APK Expansion Zip Library.
In fact, the problem is when I compile my App (cordova build android) I have the issue:
BUILD FAILED
C:\Users\VAIO\Desktop\android\tools\ant\build.xml:577: Failed to resolve library path: C:\Users\VAIO\Desktop\android/extras/google/play_licensing\library

  1. First, in my SDK i don’t have /extras/google/market_apk_expansion/downloader_library/ as the document say, but I have \extras\google\play_apk_expansion\downloader_sample
    Same, i don’t have /extras/google/market_licensing/ but I have \extras\google\play_licensing
    I open my sdk manager, all API and extras are updated.
  2. Instead of that, If I use these references and I added to my application like the following:
    android update project --path C:\BeirutMuseumV2\platforms\android --library C:\Users\VAIO\Desktop\android\extras\google\play_licensing --library C:\Users\VAIO\Desktop\android\extras\google\play_apk_expansion\downloader_library
    And If I open my project.propreties I found the 2 lines :
    android.library.reference.2=C:\Users\VAIO\Desktop\android/extras/google/play_licensing\library
    android.library.reference.3=C:\Users\VAIO\Desktop\android/extras/google\play_apk_expansion\downloader_library

so when I compile my App I have the issue: BUILD FAILED
C:\Users\VAIO\Desktop\android\tools\ant\build.xml:577: Failed to resolve library path: C:\Users\VAIO\Desktop\android/extras/google/play_licensing\library

Please can I have an idea because it is urgent 

Thanks

Eclipse errors

Hi moust.

I managed to do everything you have written in tutorial, but in Eclipse I have 6 errors.

After two days in which I tried to solve them, I gave up and I decided to ask for help here.

In XAPKDownloaderActivity.java I have:

5x - Type R cannot be resolved to a variable(line 92,176,188,189,190)
1x - The import io cannot be resolved(line 3)

I cleaned the project, reinstalled eclipse, SDK...Nothing works.
I'm using cordova 3.5.

Thanks...

When we upload a new APK to production can we reuse the previous expansion file?

Hi there.

When we upload a new APK to production (e.g. Version code: 10 and version number: 1.0.10) can we reuse the previous expansion file (version 1.0.9)? Or do we need to reupload the same expansion file each time?

If we can reuse the previous version expansion file, then should I be using main_version = 9? Currently I keep increment both my app version number as well as the expansion version and upload the same expansion file every time.

<?xml version='1.0' encoding='utf-8'?> <resources xmlns:android="http://schemas.android.com/apk/res/android"> <string name="downloading_assets">Downloading assets… (80.08 MB)</string> <string name="preparing_assets">Preparing assets…</string> <string name="download_failed">Download failed. Please restart app.</string> <string name="error">Error</string> <string name="close">Close</string> <integer name="main_version">10</integer> <integer name="patch_version">10</integer> <integer name="file_size">83973142</integer> </resources>

Last question: If we reuse previous version expansion file, does that mean that the users dont need to re-download the full 80mb expansion file each time we roll out an update?

Thanks so much!
Asfahaan

Videos from expansion file do not display using the video tag (source src='object URL returned from XAPKReader')

I am running the xapkreader plugin 2.0.0 on Android 4.4 with Cordova 3.6.

Code example:
XAPKReader.get("main_expansion/vid/niceVideo.mp4", gotVideo, errorVideo);

function gotVideo(theObjectURL) {
//theObjectURL is the objectURL returned by the xapkreaer plugin (something like blob:file%3A...)
//just create a video tag that has it's source src set to theObjectURL.
...
}

The theObjectURL parameter of gotVideo() is an objectURL like 'blob:file%3A.....". In this scenario, the video does not play.

I also tried modifying XAPKReader.java to return a base64 string to add to source src of the video tag. Something like 'data:video/mp4;base64,blablabla...' .The video does not play in this case either.

I can only get a video to play using the html video tag if source src='a relative path to a video in the Android APK' or an http URL.

Can the objectURL returned by this plugin be used as the source src attribute of the html video tag?

My expansion APK reader plugin.

Hi moust, psyon. I took some of your base code concepts and made a new plugin.

https://github.com/agamemnus/cordova-plugin-xapkreader

It's almost entirely automated. You just need to modify the XML data and the provider's android:authorities string (in android.json, if rebuilding), and that's it. There's no need to modify any of the java files.

It just uses the content provider URI, no functions.

One big technical problem I had to overcome is getting the version (and other) data into the file reader before it was read. As you probably know, the file reader is run by the content provider before the XAPKReader has a chance to do anything. To solve that, I overrode openAssetFile in XAPKProvider to throw a FileNotFoundException if the version data wasn't sent over the XAPKProvider yet. When the XAPKReader runs, it populates that data and then runs openAssetFile via the webView's openForRead.

You'll find a number of other improvements:

  • It should accept separate main and patch file versions now. (not tested)
  • It should allow you to ignore the file size checks with some boolean switches.
  • The public key data and the text data are all loaded in programmatically from the xml file. No need for .R file linkage.
  • I included the needed Android SDK libraries, already compiled.

Conflict with appfeel/admob-google-cordova plugin

After installation and editing the files per the instructions, upon compilation with cordova build --release, I get several errors pertaining to the appfeel/cordova/admob plugin.

-compile:
    [javac] Compiling 34 source files to /home/appsuser/app0/platforms/android/ant-build/classes
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:58: error: package com.google.android.gms.ads does not exist
    [javac] import com.google.android.gms.ads.AdRequest;
    [javac]                                  ^
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:59: error: package com.google.android.gms.ads does not exist
    [javac] import com.google.android.gms.ads.AdSize;
    [javac]                                  ^
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:60: error: package com.google.android.gms.ads does not exist
    [javac] import com.google.android.gms.ads.AdView;
    [javac]                                  ^
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:61: error: package com.google.android.gms.ads does not exist
    [javac] import com.google.android.gms.ads.InterstitialAd;
    [javac]                                  ^
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:62: error: package com.google.android.gms.ads.mediation.admob does not exist
    [javac] import com.google.android.gms.ads.mediation.admob.AdMobExtras;
    [javac]                                                  ^
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:63: error: package com.google.android.gms.ads.purchase does not exist
    [javac] import com.google.android.gms.ads.purchase.InAppPurchase;
    [javac]                                           ^
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAdListener.java:32: error: package com.google.android.gms.ads does not exist
    [javac] import com.google.android.gms.ads.AdListener;
    [javac]                                  ^
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAdListener.java:33: error: package com.google.android.gms.ads does not exist
    [javac] import com.google.android.gms.ads.AdRequest;
    [javac]                                  ^
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAdListener.java:36: error: cannot find symbol
    [javac] public class AdMobAdsAdListener extends AdListener {
    [javac]                                         ^
    [javac]   symbol: class AdListener
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAppPurchaseListener.java:33: error: package com.google.android.gms.ads.purchase does not exist
    [javac] import com.google.android.gms.ads.purchase.InAppPurchase;
    [javac]                                           ^
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAppPurchaseListener.java:34: error: package com.google.android.gms.ads.purchase does not exist
    [javac] import com.google.android.gms.ads.purchase.InAppPurchaseListener;
    [javac]                                           ^
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAppPurchaseListener.java:37: error: cannot find symbol
    [javac] public class AdMobAdsAppPurchaseListener implements InAppPurchaseListener {
    [javac]                                                     ^
    [javac]   symbol: class InAppPurchaseListener
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:111: error: cannot find symbol
    [javac]   private AdView adView;
    [javac]           ^
    [javac]   symbol:   class AdView
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:117: error: cannot find symbol
    [javac]   private InterstitialAd interstitialAd;
    [javac]           ^
    [javac]   symbol:   class InterstitialAd
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:123: error: cannot find symbol
    [javac]   private AdSize adSize = AdSize.SMART_BANNER;
    [javac]           ^
    [javac]   symbol:   class AdSize
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:337: error: cannot find symbol
    [javac]   private AdRequest buildAdRequest() {
    [javac]           ^
    [javac]   symbol:   class AdRequest
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:637: error: cannot find symbol
    [javac]   public static AdSize adSizeFromString(String size) {
    [javac]                 ^
    [javac]   symbol:   class AdSize
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAppPurchaseListener.java:40: error: cannot find symbol
    [javac]   private SparseArray<InAppPurchase> purchases = new SparseArray<InAppPurchase>();
    [javac]                       ^
    [javac]   symbol:   class InAppPurchase
    [javac]   location: class AdMobAdsAppPurchaseListener
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAppPurchaseListener.java:47: error: cannot find symbol
    [javac]   synchronized public void onInAppPurchaseRequested(final InAppPurchase inAppPurchase) {
    [javac]                                                           ^
    [javac]   symbol:   class InAppPurchase
    [javac]   location: class AdMobAdsAppPurchaseListener
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAppPurchaseListener.java:60: error: cannot find symbol
    [javac]   public InAppPurchase getPurchase(int purchaseId) {
    [javac]          ^
    [javac]   symbol:   class InAppPurchase
    [javac]   location: class AdMobAdsAppPurchaseListener
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:123: error: cannot find symbol
    [javac]   private AdSize adSize = AdSize.SMART_BANNER;
    [javac]                           ^
    [javac]   symbol:   variable AdSize
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:295: error: cannot find symbol
    [javac]       adView = new AdView(cordova.getActivity());
    [javac]                    ^
    [javac]   symbol:   class AdView
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:297: error: cannot find symbol
    [javac]         if (adSize == AdSize.BANNER) { // 320x50
    [javac]                       ^
    [javac]   symbol:   variable AdSize
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:299: error: cannot find symbol
    [javac]         } else if (adSize == AdSize.MEDIUM_RECTANGLE) { // 300x250
    [javac]                              ^
    [javac]   symbol:   variable AdSize
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:303: error: cannot find symbol
    [javac]         } else if (adSize == AdSize.FULL_BANNER) { // 468x60
    [javac]                              ^
    [javac]   symbol:   variable AdSize
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:304: error: cannot find symbol
    [javac]           adView.setAdSize(AdSize.BANNER);
    [javac]                            ^
    [javac]   symbol:   variable AdSize
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:305: error: cannot find symbol
    [javac]         } else if (adSize == AdSize.LEADERBOARD) { // 728x90
    [javac]                              ^
    [javac]   symbol:   variable AdSize
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:306: error: cannot find symbol
    [javac]           adView.setAdSize(AdSize.BANNER);
    [javac]                            ^
    [javac]   symbol:   variable AdSize
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:307: error: cannot find symbol
    [javac]         } else if (adSize == AdSize.SMART_BANNER) { // Screen width x 32|50|90
    [javac]                              ^
    [javac]   symbol:   variable AdSize
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:310: error: cannot find symbol
    [javac]             adView.setAdSize(new AdSize(768, 90));
    [javac]                                  ^
    [javac]   symbol:   class AdSize
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:312: error: cannot find symbol
    [javac]             adView.setAdSize(AdSize.BANNER);
    [javac]                              ^
    [javac]   symbol:   variable AdSize
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:338: error: package AdRequest does not exist
    [javac]     AdRequest.Builder request_builder = new AdRequest.Builder();
    [javac]              ^
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:338: error: package AdRequest does not exist
    [javac]     AdRequest.Builder request_builder = new AdRequest.Builder();
    [javac]                                                      ^
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:343: error: cannot find symbol
    [javac]       request_builder = request_builder.addTestDevice(deviceId).addTestDevice(AdRequest.DEVICE_ID_EMULATOR);
    [javac]                                                                               ^
    [javac]   symbol:   variable AdRequest
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:358: error: cannot find symbol
    [javac]     AdMobExtras adextras = new AdMobExtras(bundle);
    [javac]     ^
    [javac]   symbol:   class AdMobExtras
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:358: error: cannot find symbol
    [javac]     AdMobExtras adextras = new AdMobExtras(bundle);
    [javac]                                ^
    [javac]   symbol:   class AdMobExtras
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:360: error: cannot find symbol
    [javac]     AdRequest request = request_builder.build();
    [javac]     ^
    [javac]   symbol:   class AdRequest
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:498: error: cannot find symbol
    [javac]     interstitialAd = new InterstitialAd(cordova.getActivity());
    [javac]                          ^
    [javac]   symbol:   class InterstitialAd
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:552: error: cannot find symbol
    [javac]     final InAppPurchase purchase = inAppPurchaseListener.getPurchase(purchaseId);
    [javac]           ^
    [javac]   symbol:   class InAppPurchase
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:575: error: cannot find symbol
    [javac]     final InAppPurchase purchase = inAppPurchaseListener.getPurchase(purchaseId);
    [javac]           ^
    [javac]   symbol:   class InAppPurchase
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:639: error: cannot find symbol
    [javac]       return AdSize.BANNER;
    [javac]              ^
    [javac]   symbol:   variable AdSize
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:641: error: cannot find symbol
    [javac]       return AdSize.MEDIUM_RECTANGLE;
    [javac]              ^
    [javac]   symbol:   variable AdSize
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:643: error: cannot find symbol
    [javac]       return AdSize.FULL_BANNER;
    [javac]              ^
    [javac]   symbol:   variable AdSize
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:645: error: cannot find symbol
    [javac]       return AdSize.LEADERBOARD;
    [javac]              ^
    [javac]   symbol:   variable AdSize
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:647: error: cannot find symbol
    [javac]       return AdSize.SMART_BANNER;
    [javac]              ^
    [javac]   symbol:   variable AdSize
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAds.java:649: error: cannot find symbol
    [javac]       return AdSize.SMART_BANNER;
    [javac]              ^
    [javac]   symbol:   variable AdSize
    [javac]   location: class AdMobAds
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAdListener.java:47: error: method does not override or implement a method from a supertype
    [javac]   @Override
    [javac]   ^
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAdListener.java:60: error: method does not override or implement a method from a supertype
    [javac]   @Override
    [javac]   ^
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAdListener.java:82: error: cannot find symbol
    [javac]     case AdRequest.ERROR_CODE_INTERNAL_ERROR:
    [javac]          ^
    [javac]   symbol:   variable AdRequest
    [javac]   location: class AdMobAdsAdListener
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAdListener.java:85: error: cannot find symbol
    [javac]     case AdRequest.ERROR_CODE_INVALID_REQUEST:
    [javac]          ^
    [javac]   symbol:   variable AdRequest
    [javac]   location: class AdMobAdsAdListener
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAdListener.java:88: error: cannot find symbol
    [javac]     case AdRequest.ERROR_CODE_NETWORK_ERROR:
    [javac]          ^
    [javac]   symbol:   variable AdRequest
    [javac]   location: class AdMobAdsAdListener
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAdListener.java:91: error: cannot find symbol
    [javac]     case AdRequest.ERROR_CODE_NO_FILL:
    [javac]          ^
    [javac]   symbol:   variable AdRequest
    [javac]   location: class AdMobAdsAdListener
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAdListener.java:98: error: method does not override or implement a method from a supertype
    [javac]   @Override
    [javac]   ^
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAdListener.java:111: error: method does not override or implement a method from a supertype
    [javac]   @Override
    [javac]   ^
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAdListener.java:123: error: method does not override or implement a method from a supertype
    [javac]   @Override
    [javac]   ^
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAppPurchaseListener.java:40: error: cannot find symbol
    [javac]   private SparseArray<InAppPurchase> purchases = new SparseArray<InAppPurchase>();
    [javac]                                                                  ^
    [javac]   symbol:   class InAppPurchase
    [javac]   location: class AdMobAdsAppPurchaseListener
    [javac] /home/appsuser/app0/platforms/android/src/com/appfeel/cordova/admob/AdMobAdsAppPurchaseListener.java:46: error: method does not override or implement a method from a supertype
    [javac]   @Override
    [javac]   ^
    [javac] Note: /home/appsuser/app0/platforms/android/src/org/apache/cordova/file/DirectoryManager.java uses or overrides a deprecated API.
    [javac] Note: Recompile with -Xlint:deprecation for details.
    [javac] Note: /home/appsuser/app0/platforms/android/src/org/apache/cordova/file/ContentFilesystem.java uses unchecked or unsafe operations.
    [javac] Note: Recompile with -Xlint:unchecked for details.
    [javac] 57 errors

BUILD FAILED
/home/appsuser/android-studio/sdk/tools/ant/build.xml:720: The following error occurred while executing this line:
/home/appsuser/android-studio/sdk/tools/ant/build.xml:734: Compile failed; see the compiler error output for details.

Expansion File found, validated - but XAPKReader.get() always yeilds `APKExpansionFile not found.`

Everything set up as directed, .obb is already in place, no matter what all calls to XAPKReader.get( ... ) result in the following error:

APKExpansionFile not found.
 java.lang.NullPointerException
  at org.apache.cordova.CallbackContext.sendPluginResult(CallbackContext.java:60)
  at org.apache.cordova.xapkreader.XAPKReader$2.run(XAPKReader.java:94)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
  at java.lang.Thread.run(Thread.java:841)

Xapkreader and cordova build error

Hi everyone.Today I found this plugin, I installed it, I configured it but when I try to run cordova build it says BUILD FAILED because of build.xml from downloader_library, library and zip_file. I realized that build.xml files wasn't in this folders so I runned android update lib-project -p . to create it. The BUILD FAILED persist with the followings:

...\adt-bundle-windows-x86_64-20140624\sdk\tools\ant\build.xml:720: The following error occurred while executing this line:```
...\adt-bundle-windows-x86_64-20140624\sdk\tools\ant\build.xml:734: Compile failed; see the compiler error output for details.

Total time: 3 seconds
Error code 1 for command: cmd with args: /s,/c,ant,debug,-f,D:\workspace\APP_NAME\platforms\android\build.xml,-Dout.dir=ant-build,-Dgen.absolute.dir=ant-gen
Error: D:\workspace\APP_NAME\platforms\android\cordova\build.bat: Command failed with exit code 2```
at ChildProcess.whenDone (...\AppData\Roaming\npm\node_modules\cordova\node_modules\cordova-lib\src\cordova\superspawn.js:135:23)
at ChildProcess.emit (events.js:98:17)
at maybeClose (child_process.js:756:16)
at Process.ChildProcess._handle.onexit (child_process.js:823:5)


Besides this, I have 11 errors and 3 warnings.
Does anyone know what to do? Thanks

ExpansionAPKFile doesn't exist or has a wrong size

Hello!

I'm trying to use this library to download my expansion pack.
I uploaded to the store a new versión of my APK and the expansion pack but I'm always getting this error:

"E/XAPKDownloader(7079): ExpansionAPKFile doesn't exist or has a wrong size (main.2..obb)."

I checked the name in the developers console and It's the same.

I don't know what to do. Can you help me?

If you need more information just tell me 😉

Thanks!!!

MAIN_VERSION can be more than 1

Simply setting MAIN_VERSION to 1 and the PATCH_VERSION to my version code (20140723) worked to make the app download the expansion file, but it did not work to access the file. I had to set MAIN_VERSION to the same version as PATCH_VERSION for it to work.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.