I have a unity project for android which is larger than 50MB and so must be split. I have had working apt splitting for a couple months now. Starting a few days ago I mad a couple changes which were purely aesthetic. I uploaded the new build and now(days after the api and obb files were uploaded) I receive an error at the download point on the device "Download failed because the resources could not be found."
I manually added the obb file to the device and it worked, I have tried re uploading the apk and bob files with minor changes and still after a day of waiting see the same errors.
viewing with logcat I see these errors when i try to download
I/LicenseChecker(20270): Binding to licensing service.
W/ContextImpl(20270): Implicit intents with startService are not safe: Intent { act=com.android.vending.licensing.ILicensingService } android.content.ContextWrapper.bindService:517 com.unity3d.plugin.downloader.c.j.a:-1 com.unity3d.plugin.downloader.b.s.run:-1
I/LicenseChecker(20270): Calling checkLicense on service for [my project com]
I/LicenseChecker(20270): Start monitoring timeout.
W/GLSUser (26959): GoogleAccountDataService.getToken()
I/qtaguid (18936): Failed write_ctrl(u 53) res=-1 errno=22
I/qtaguid (18936): Untagging socket 53 failed errno=-22
W/NetworkManagementSocketTagger(18936): untagSocket(53) failed with errno -22
I/ElegantRequestDirector(18936): I/O exception (org.apache.http.NoHttpResponseException) caught when processing request: The target server failed to respond
I/ElegantRequestDirector(18936): Retrying request
I/LicenseChecker(20270): Received response.
I/LicenseChecker(20270): Clearing timeout.
Its not obvious to me what I did to make obb downloading stop working. I don't know enough about the error messages to pick anything out of it.
What can I do to make it download the bob files again?
In case anyone else runs into this here was my solution. It looks like Google made a policy change.
"To test your application's implementation of the manual download procedure, you can publish it to the alpha or beta channel, so it will only be available to authorized testers. If everything works as expected, your application should begin downloading the expansion files as soon as the main activity starts.
Note: Previously you could test an app by uploading an unpublished "draft" version. This functionality is no longer supported; instead, you must publish it to the alpha or beta distribution channel. For more information, see Draft Apps are No Longer Supported."
so now you need to publish your alpha/beta builds before you can download the files.
Related
Good day,
I upload a web resource archive to MobileFirst Console, I expected my mobile device will receive the direct update notification.
However, my app just keep loading.
I go check the mfp trace.log, it just keep printing
[3/9/20 19:52:01:788 MYT] 000000c1 id= com.worklight.common.util.JNDIUtils 1 JNDI Access (global scope) not found in cache for key mfp.cloud.devicelimit
[3/9/20 19:52:01:789 MYT] 000000c1 id= com.worklight.common.util.JNDIUtils 1 globalScopeLookup JNDI Access via globalScopeLookup to mfp.cloud.devicelimit => null
I try to google on this error message but didnt get any good result.
I run the following command to generate the web resource file:
mfpdev app webupdate --build
And then I upload it to MFP Console.
My cordova-plugin-mfp version is as follow:
"cordova-plugin-mfp": "^8.0.2020012903"
Its Cordova app.
There is no client side log, the console just log nothing until it hit timeout, then it only log timeout message.
Any Ideas?
I added app link feature with autoVerify set for my app following link
On testing the app, it worked in the begining. Then after reinstalling the build, not working.
On debugging what I found is the response time for my .well-known/assetlinks.json file is > 1sec.
which gives timeout error on test-url https://digitalassetlinks.googleapis.com/v1/statements:list?source.web.site=https://example.com&relation=delegate_permission/common.handle_all_urls
{
"maxAge": "599.999999353s",
"debugString": "********************* ERRORS *********************\n* Error: deadline_exceeded: Timeout occurred while fetching Web statements from https://example.com./.well-known/assetlinks.json (which is equivalent to 'https://example.com/.well-known/assetlinks.json') using download from the web (ID 1).\n********************* INFO MESSAGES *********************\n* Info: No statements were found that match your query\n"
}
Looks like because of this timeout, verification is failing.
I would like to know whether app/system retry verification at any point later if verification failed on install (may be because of connection issue or temporary website down)?
Unfortunately Android M does not automatically reattempt verification if it fails due to timeout or connectivity issues. As you found in this guide the next attempt will occur on app update or re-install.
I just downloaded the main Java Jar file directly from here: http://loopj.com/android-async-http/
Double-clicked the jar file and got this error message pop up:
"The Java JAR file "android-async-http-1.4.9.jar" could not be launched.
Check the Console for possible error messages."
In the console, it had the following 4 messages pop up:
4/23/16 7:34:40.805 AM com.apple.xpc.launchd[1]: (com.apple.xpc.launchd.domain.pid.quicklookd.2848) Path not allowed in target domain: type = pid, path = /Library/Frameworks/iTunesLibrary.framework/Versions/A/XPCServices/com.apple.iTunesLibraryService.xpc error = 147: The specified service did not ship in the requestor's bundle, origin = /System/Library/Frameworks/QuickLook.framework/Versions/A/Resources/quicklookd.app
4/23/16 7:34:53.261 AM QuickLookSatellite[2861]: [QL] Using too much memory (127 MB), hit critical threshold (120 MB), exiting immediately to clean up.
4/23/16 7:34:53.280 AM com.apple.xpc.launchd[1]: (com.apple.quicklook.satellite.2CBCE90F-159F-4B12-83D8-1859B1F39063[2861]) Service exited due to signal: Killed: 9
4/23/16 7:34:53.597 AM QuickLookSatellite[2879]: ImageIO: JPEG Corrupt JPEG data: 1502 extraneous bytes before marker 0xfe
4/23/16 7:34:53.600 AM QuickLookSatellite[2879]: ImageIO: JPEG JPEG datastream contains no image
For reference, I've confirmed that in my mac security, I've switched it to "allow apps downloaded from anywhere," so that shouldn't be an issue.
In addition, I suspect the last two are related to the actual image of the pop-up error (the first thing I reported)... so once the root cause is resolved, there shouldn't be a need for an error message and everything should be dandy.
How can I resolve this?
This jar file is Android library, it is not application file ==> You can not run this file.
Migrated application from 6.2 to 7.0. Server MobileFirst version: 7.0.0.00.20150312-0731
The application itself works great. When push new wlapp to server, the device see's update is available. Proceed to install update and fails.
logCat
W/PluginManager(11315): THREAD WARNING: exec() call to WLDirectUpdatePlugin.start blocked the main thread for 20ms. Plugin should use CordovaInterface.getThreadPool().
W/HardwareRenderer(11315): Attempting to initialize hardware acceleration outside of the main thread, aborting
W/PluginManager(11315): THREAD WARNING: exec() call to WLDirectUpdatePlugin.showProgressDialog blocked the main thread for 44ms. Plugin should use CordovaInterface.getThreadPool().
E/com.worklight.androidgap.directupdate.WLDirectUpdateDownloader( 9466): WLDirectUpdateDownloader.validateZipFileIntegrity in WLDirectUpdateDownloader.java:129 :: Invalid direct update zip file, original file might have been altered or replaced.
7.0.0.00.20150312-0731 is an awfully old build of MFPF 7.0; many fixes, including to Direct Update took place since.
I suggest that you will update to latest available iFix from IBM Fix Central to confirm this issue still happens to you.
This is an issue in which the content type of returned direct update zip is not "application/zip" as it should be.
Note that Worklight server returns "application/zip" content type for android direct update. We have a test fix right now where we just log the different content type and continue the direct update process since it can be correct zip and content type can be changed by firewall for example.
If you create a PMR, we can give you a test fix to test (just drop worklight-android.jar into Android project -> deploy onto device). Once we confirm that it works we can deliver it to production builds. When submitting the PMR please link them to this StackOverflow question to give full background of issue.
I am trying to provision the Nymi band from my android app. I am using the sample code from the Nymi Android SDK 2.0 (Can be downloaded from here:). I removed all the code related to the Nymulator(Nymi band emulator). I want to test the provisioning with the real Nymi band. However,when I click the provision button, the app get crashed. I tried to debug it with the exception breakpoints and I got the "getsockopt errno 88" error in my debugger:
I am attaching the screenshot too.
I did some research on google , and found that the errno 88 is
#define ENOTSOCK 88 /* Socket operation on non-socket */
During the app launch, I see the following message in the Debug Console:
Connected to the target VM, address: 'localhost:8604', transport: 'socket'
which I think,the connection to socket is fine. I am not sure,what makes the socket connection go wrong later.
This is what I see in my LOgCat after I click the provision button:(I am posting only some part of the error message,because the error message in Logcat is way too long)
Edit: I added some breakpoints,and I found where the app is crashing. I found this code:
try {
System.loadLibrary("_nymi_sdk_net");
_loaded = true;
} catch (UnsatisfiedLinkError var6) {
return false;
}
At system.load library, I am getting the error.
Edit 2: I changed the libraries from net to native ,as net is for emulators and native is for device. This time new error occurs at the same line:System.loadLibrary("_nymi_sdk");
Screenshot:
(Disclaimer: I know nothing of this SDK or the band, and this answer is just a speculation. And I've deleted my earlier answer as it was a missed shot in the dark.)
There is a minor hint in the SDK's README.md:
Prerequisites:
Android Development:
[...]
To use the BasicExample app with a Nymi Band, the NCL library in Examples\BasicExample\libs must be replaces with the native library in
NCL\native\libs
You must remove all files and folders from BasicExample\libs and copy all files from NCL\native\libs there instead.
(I wonder why they didn't emphasize this much harder...)
So the libs folder should contain the following folders and files: