I got warnings when I upload cn1 Android build to Google Play.
The warning messages are below.
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
implementation 'androidx.appcompat:appcompat:1.0.0'
compile 'com.google.android.gms:play-services-auth:12.0.1'
compile 'com.google.android.gms:play-services-base:12.0.1'
compile 'com.google.android.gms:play-services-analytics:12.0.1'
compile 'com.google.android.gms:play-services-gcm:12.0.1'
compile 'com.google.android.gms:play-services-location:12.0.1'
compile 'com.google.android.gms:play-services-maps:12.0.1'
compile 'com.google.android.gms:play-services-ads:12.0.1'
implementation 'com.android.billingclient:billing:4.0.0'
implementation 'androidx.multidex:multidex:1.0.3'
implementation 'co.infinum:goldeneye:1.1.2';
}
Try to update versions of the implemented dependencies in the Gradle of the project. Eg change
compile 'com.google.android.gms:play-services-auth:12.0.1'
To
implementation 'com.google.android.gms:play-services-auth:20.3.0'
Related
I have a C static library (foo.a) built for arm64 target (aarch64-unknown-linux-musl). I need to call some C functions in that library from my Rust project.
How do I link to that pre-existing library (foo.a) without building it?
I defined extern C functions for my library so technically, if I can link to it, I should be able to use it from Rust code?
extern "C" {
pub fn somefunc();
}
The problem I run into is that Cargo rust build wants to use the default toolchain (stable-x86_64-unknown-linux-gnu) and I don't have my library compiled for that target. Can I customize Cargo build to not require stable-x86_64-unknown-linux-gnuand simply link against existing pre-compiled library for another target platform?
I tried modifying rust project settings to change default rustup default <toolchain>; but cargo build did not recognize the target aarch64-unknown-linux-musl. Then I tried to change build dependency to specify foo.a as static lib for my target.
[build-dependencies]
foo = { artifact = "staticlib", version = "1.0", target = "aarch64-unknown-linux-musl" }
I am getting the following warning in my terminal. How can I solve this ? (remove the warning)
Warning: C:\Users\Sharon\Documents\MyProject\PROJECTOne\node_modules\#azure\core-tracing\dist-esm\src\interfaces.js depends on '#opentelemetry/api'. CommonJS or AMD dependencies can cause optimization bailouts.
For more info see: https://angular.io/guide/build#configuring-commonjs-dependencies
This is a known issue that older version of #opentelemetry/api doesn't support ESM. https://github.com/Azure/azure-sdk-for-js/issues/11550. The warning should be gone once the #azure/storage-blob releases a new version that contains the fix.
You can remove CommonJS or AMD dependencies can cause optimization bailouts..... by adding below code snippet in to build section of your angular.json
"allowedCommonJsDependencies": [
"opentelemetry",
]
reply me if it not works
In my app module (which depends on my backend endpoints module), I have the following
dependencies {
compile project(path: ':backend', configuration: 'android-endpoints')
}
But the following also works.
dependencies {
compile project(path: ':backend', configuration: 'endpoints')
}
I see that the generated .jar file dependency has the "android" appended to its name in the former case. However, I suspect there is a more fundamental difference between the two. Does anyone know?
I found the following cryptic reference here:
https://github.com/GoogleCloudPlatform/gradle-appengine-plugin
search for "How do I use a compile dependency on my endpoints client libraries from another project?" in the FAQ section.
Thanks for your help and I hope this isn't a stupid question.
android-endpoints adds few a extra transitive dependencies to the artifact that are required to use endpoints with android, it also removes some that are already included with android.
included : "google-api-client-android"
excluded : "org.apache.httpcomponents:httpclient"
endpoints only adds "google-api-client" and doesn't exclude anything.
I'm trying to use the SkypeKit SDK to create an Objective-C++ project using Xcode 4. I have two compiled libraries from SkypeKit, libskypekit_cyassl_lib.a and libskypekit_cppwrapper_2_lib.a, which I need to be able to use so as to access the Skype API.
I've added in both .a files under 'Linked Frameworks and Libraries' and added -all_load -ObjC -lstdc++ to the 'Other Linker Flags', and that builds okay, but as soon as I try to use any of the methods in those libraries, building fails.
Any help would be greatly appreciated, thank you!
You can call C++ code from Objective-C++, which means that your files should have the .mm extension instead of .m
I assume that this could be the issue, but since you did not specify the errors you get it is just a guess. Specifically, if you call C++ code from a .m file you get compilation errors.
Another possible cause is forgetting to import the header files of the library. For the import to be successful, you also have to add the directory where the headers are to your project "header search path".
If this does not help, please post the error message.
Ok, so here's my question:
I have a working DUB project which produces an application. I decided I also wanted a "library" configuration in my dub.json file:
"configurations": [
{
"name": "application",
"targetType": "executable"
},
{
"name": "library",
"targetType": "library",
}
],
So, now when I build the project using dub build --config=library, it produces a libXXXX.a file in the same directory.
So far, so good.
I tried using this library (actually a tiny test-function marked as extern "C" from a test C app).
So, I compile my C app using gcc -c ctest.c and then link them all together like dmd libMYLIBRARY.a ctest.o.
Now, here is the problem:
In this last step, the linker complains that many symbols are missing - all coming from external dependencies (2 object files and several .a libraries) that would normally be linked when building the project as an application.
So, the question is... how do I solve this?
I mean... Should I just link my test C app against ALL of the original dependencies (this would not make the library very portable admittedly), or is there any way around it, so that anybody could use my library, only by linking against my libXXXXX.a file?
Should I just link my test C app against ALL of the original dependencies (this would not make the library very portable admittedly),
This is the "technically correct" answer. The reason for that is because, otherwise, if the C app wanted to use another D library which had among its dependencies some package that's also a dependency in your library, and if it were linked in the same way (including all of its dependencies in its static library file), this dependency would then occur twice in the linker inputs. Even if you told the linker to discard one copy, there can be problems due to the dependency being of separate incompatible versions, etc. (Note that there is an ongoing D SAOC project to handle this.)
If you were to assume that the only D library the C program will use is your Dub package, then you could conceivably create a static library which includes all dependencies, though it would probably need to include the D standard library and runtime as well.