Package xxx requires unavailable shared library - Maps API - api-key

I am working with a sample app that uses the Maps API and getting the following error:
Package xxx requires unavailable shared library com.google.android.maps; failing!
I have obtained a Maps API key from my debug certificate fingerprint and inserted it into my main xml file thusly:
<com.google.android.maps.MapView
android:id="#+id/mapmain"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="lotsoflettersandnumbers" />
I have also loaded the maps jar file onto my device. What am I doing wrong or not doing right? What else do you need to know to help answer this question?
I tried this on another device (Android 2.3; the device getting the error is 2.1) and it works. One thing I noticed is that on the 2.1 device, the permissions for the maps.jar file are -rwxrwxrwx, and on the 2.3 device they are -rw-r--r--. Could that be contributing to the error?

Problem solved. I was missing the file /system/etc/permissions/com.google.android.maps.xml, which is also required. FWIW, I am working with a ruggedized Android device that does not come with the google maps jar or xml files on it. That's why I had to add them myself.

Related

How to whitelist a vendor-specific API in AOSP for Android 10

I'm trying to add a vendor-specific API to my AOSP code base. I was able to get this working on Android 5 through 9, but cannot figure this out on Android 10.
I read the documentation on the AOSP docs for Implementing Java SDK Library
I have the following blueprint file:
java_sdk_library {
name: "com.mycompany.sdk.myclass",
srcs: ["java/**/*.java"],
api_packages: ["com.mycompany.sdk.myclass"],
}
I generated the api subdirectory using:
build/soong/scripts/gen-java-current-api-files.sh "vendor/mycompany/sdk/myclass" && m update-api
This put all my public method signatures into the current.txt file.
I added this as a boot jar to my top level board.mk file with:
PRODUCT_BOOT_JARS += com.mycompany.sdk.myclass
Building this creates the corresponding com.mycompany.sdk.myclass.xml permissions file:
<?xml version="1.0" encoding="utf-8"?>
<permissions>
<library name="com.mycompany.sdk.myclass"
file="/system/framework/com.mycompany.sdk.myclass.jar"/>
</permissions>
Everything builds and installs fine. I verified the permissions file is in /system/etc/permissions/ and points to the correct jar filename. But I get "Accessing hidden method (blacklist, linking, denied)" exceptions when I run a test app built against my private SDK:
W/test_app: Accessing hidden method Lcom/mycompany/sdk/myclass;->myMethod(Landroid/content/Context;Z)V (blacklist, linking, denied)
I can eliminate this blacklist error by issuing the command:
adb shell settings put global hidden_api_policy 1
So I know my jar is being built and installed correctly. But is just blacklisted for 3rd parties.
I eventually added my package name to frameworks/base/config/hiddenapi-greylist-packages.txt, and suddenly my test app runs, and properly finds the private API. Unfortunately, the blacklist errors are replaced by greylist warnings on every method call. I don't want the log cluttered with these warnings, so it must be whitelisted, not greylisted.
I tried adding it to /build/make/core/tasks/check_boot_jars/package_whitelist.txt, but this made no difference.
How do I whitelist my private API instead of greylist?
There is no white list.
The white list (allow list) is the methods listed in Android SDK.
Private API are not in Android SDK.

SideBySide issue with ArcGISRuntime SDK version100.11

Trying to update my WPF application from the ArcGIS Runtime SDK version 100.6 to 100.11. I used the existing style in the WiX package to update the dll's so that all I had to do was ensure all the shader .cso files were accurate in the Components. Here is the screen shot of my dll's that are configured:
When I try to run the application, I get an error that it cannot access the RuntimeCoreNet100_11.dll. In the Event Viewer I get the following message:
In running the SxsTrace program, for the runtimecoreAssembly, it states the Parser "Did not find manifest for culture Neutral".
Any help here would be very appreciated.
Update
per the instructions given in the comment, i added the manifest file to the dependency components in the component group pictured above. this allowed my app to start, but immediately crashed with a KERNELBASE.dll error. Anyone familiar with fixing those?
Looks like you're missing the manifest files. There should be 4 files to deploy to each clientXX folder: runtimecore.dll, runtimecoreAssembly.manifest, RuntimeCoreNet100_11.dll and RuntimeCoreNet100_11.WPF.dll

Out of process server in VOIP

I found voip example on github for UWP. Now I'm trying to create my voip app, and I want to use VoipHost project in my app. I added existing project, edited package manifest file. When I want to deploy the app to the device I get error:
Severity Code
Description Project
File Line
Suppression State Error
DEP6701 : Bootstrapping failed with unexpected error: 'The ID value is not specified. Parameter name: id'.
VoipHost
And one warning:
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\AppxPackage\Microsoft.AppXPackage.Targets(1930,5): warning APPX1708: The executable 'VoipHost.exe' is specified as the implementation for the .winmd file. Only in-process servers are supported for generating registration information in the app manifest. You must specify the out-of-process server registration information in the app manifest.
Any advices?
Many thanks.
I had a similar issue deploying a headless application with Windows IoT running in a Raspberry pi 3. I solved the problem giving an "Assembly Identity" in the project properties.
You can do that following the next steps: Rigth Click to project --> Properties --> Manifest Tool --> General.
Fill the field "Assembly Identity" with any number. After that compiles, run and works like a charm.

Deploy Qt3D project for Android under win 7

I've successfully deployed the cube example APK by creating a new Quick 2 project and copy qml file there, but got "module "Qt3D" plugin "qthreedqmlplugin" not found" error message, any clue for this? I already place the so file into imports/Qt3D folder, but no success. Thanks.
Edit: I tried using Qt 5.1.1 and followed the Qt3D installation described here (http://qt-project.org/wiki/Qt3D-Installation) , and can get rid of the plugin not found error message above. But, this time, a message of “library “libQt53DQuick.so” not found” show up as follows:
W/Qt (29930): assets:/qml/3dCube/main.qml:2 (): assets:/qml/3dCube/main.qml:2:1: plugin cannot be loaded for module "Qt3D": Cannot load library /data/data/org.qtproject.example.test3D/qml/Qt3D/libqthreedqmlplugin.so: (Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "libQt53DQuick.so" needed by "libqthreedqmlplugin.so"; caused by load_library(linker.cpp:745): library "libQt53DQuick.so" not found)
The problem been solved! After adding the following line in my .pro file:
QT += qml quick 3dquick
The example works well in my sony android phone with adreno gpu, but not in my new lenovo yoga 8" with PowerVR gpu which I'll look into later.
Edit: BTW I eventually use QT5.2.1 for building my example.
That's because in Qt 5.3 there was no way to figure out the plugin dependencies of qml imports. In 5.4, we have the qml import scanner that avoids the need to edit your .pro files to mention qml import dependencies.

Error when uploading new iPad app version: "iPad: application executable contains unsupported architecture(s): i386"

I'm trying to update my iPad app on the App Store. I filled out the "new version" form on iTunes Connect and then tried to upload the new version with Application Loader. It rejected the .zip file giving me three errors.
I had changed the "Bundle Version" line in the Info.plist file to 1.1, and added "Bundle versions string, short" (also 1.1). Then I build the .app file, and zipped it up with the .mobileprovision file.
The zip file: Chordpad.zip
Contains: ChordPad.app, ChordPad_Distribution.mobileprovision
These are the errors Application Loader is giving me:
1. iPad: application executable contains unsupported architecture(s): i386
2. Application failed codesign verification. The signature was invalid, or it was not signed with an Apple submission certificate.
3. Unable to extract codesigning entitlements from your application. Please make sure ChordPad.app is a valid Mach executable that's properly codesigned.
As far as I know, all my certificates are valid. Could anyone please help me fix this?
If the i386 architecture is being used, you are probably building for the simulator. Switch to device to get the arm architectures.