Comments (13)
@frankyxcs is your app crashing due to that exception or is it just a warning? If it is just a warning, do you see any other content in logcat that may indicate why the form is not showing?
from googleads-consent-sdk-android.
hi rampara : i read on stackoverflow that this seems to bee a warning and my app is not crashing but the form will not load.
I really do not know why the form is not loading. Here is another logcat :
at void com.google.android.gms.ads.internal.l.run() (:com.google.android.gms.dynamite_dynamitemodulesa@[email protected] (040400-197041431):16)
at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:789)
at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:98)
at void com.google.android.gms.ads.internal.util.f.dispatchMessage(android.os.Message) (:com.google.android.gms.dynamite_dynamitemodulesa@[email protected] (040400-197041431):9)
at void android.os.Looper.loop() (Looper.java:164)
at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6938)
at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.webkit.SafeBrowsingResponse" on path: DexPathList[[zip file "/data/app/com.android.chrome-PxcsJgPrdsd1orI9WHkgHA==/base.apk"],nativeLibraryDirectories=[/data/app/com.android.chrome-PxcsJgPrdsd1orI9WHkgHA==/lib/arm64, /data/app/com.android.chrome-PxcsJgPrdsd1orI9WHkgHA==/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]
at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (WebViewChromium.java:48)
at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:651)
at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:581)
at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int) (WebView.java:564)
at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet) (WebView.java:551)
at void android.webkit.WebView.(android.content.Context) (WebView.java:541)
at void com.google.android.gms.ads.internal.webview.u.(com.google.android.gms.ads.internal.webview.at, com.google.android.gms.ads.internal.webview.au, java.lang.String, boolean, mt, com.google.android.gms.ads.internal.util.client.m, com.google.android.gms.ads.internal.csi.l, com.google.android.gms.ads.internal.bn, com.google.android.gms.ads.internal.w, com.google.android.gms.ads.internal.clearcut.a) (:com.google.android.gms.dynamite_dynamitemodulesa@[email protected] (040400-197041431):1)
at java.lang.Object com.google.android.gms.ads.internal.webview.q.call() ((null):5)
at java.lang.Object com.google.android.gms.ads.internal.util.bs.a(java.util.concurrent.Callable) (:com.google.android.gms.dynamite_dynamitemodulesa@[email protected] (040400-197041431):23)
at com.google.android.gms.ads.internal.webview.i com.google.android.gms.ads.internal.webview.o.a(android.content.Context, com.google.android.gms.ads.internal.webview.au, java.lang.String, boolean, boolean, mt, com.google.android.gms.ads.internal.util.client.m, com.google.android.gms.ads.internal.csi.l, com.google.android.gms.ads.internal.bn, com.google.android.gms.ads.internal.w, com.google.android.gms.ads.internal.clearcut.a) (:com.google.android.gms.dynamite_dynamitemodulesa@[email protected] (040400-197041431):8)
at com.google.android.gms.ads.internal.webview.i com.google.android.gms.ads.internal.i.a(com.google.android.gms.ads.internal.state.b, com.google.android.gms.ads.internal.x, com.google.android.gms.ads.internal.safebrowsing.k) (:com.google.android.gms.dynamite_dynamitemodulesa@[email protected] (040400-197041431):12)
at com.google.android.gms.ads.internal.webview.i com.google.android.gms.ads.internal.y.a(com.google.android.gms.ads.internal.state.b, com.google.android.gms.ads.internal.x, com.google.android.gms.ads.internal.safebrowsing.k) (:com.google.android.gms.dynamite_dynamitemodulesa@[email protected] (040400-197041431):20)
at void com.google.android.gms.ads.internal.l.run() (:com.google.android.gms.dynamite_dynamitemodulesa@[email protected] (040400-197041431):16)
at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:789)
at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:98)
at void com.google.android.gms.ads.internal.util.f.dispatchMessage(android.os.Message) (:com.google.android.gms.dynamite_dynamitemodulesa@[email protected] (040400-197041431):9)
at void android.os.Looper.loop() (Looper.java:164)
at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6938)
at java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) (Method.java:-2)
at void com.android.internal.os.Zygote$MethodAndArgsCaller.run() (Zygote.java:327)
at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:1374)
Rejecting re-init on previously-failed class java.lang.Class<com.android.webview.chromium.hb>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/webkit/SafeBrowsingResponse;
at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (WebViewChromium.java:48)
at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:651)
at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:581)
at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet, int) (WebView.java:564)
at void android.webkit.WebView.<init>(android.content.Context, android.util.AttributeSet) (WebView.java:551)
at void android.webkit.WebView.<init>(android.content.Context) (WebView.java:541)
at void com.google.android.gms.ads.internal.webview.u.<init>(com.google.android.gms.ads.internal.webview.at, com.google.android.gms.ads.internal.webview.au, java.lang.String, boolean, mt, com.google.android.gms.ads.internal.util.client.m, com.google.android.gms.ads.internal.csi.l, com.google.android.gms.ads.internal.bn, com.google.android.gms.ads.internal.w, com.google.android.gms.ads.internal.clearcut.a) (:com.google.android.gms.dynamite_dynamitemodulesa@[email protected] (040400-197041431):1)
at java.lang.Object com.google.android.gms.ads.internal.webview.q.call() ((null):5)
also
Rejecting re-init on previously-failed class java.lang.Class<com.android.webview.chromium.hb>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/webkit/SafeBrowsingResponse;
at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (WebViewChromium.java:48)
also
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.webkit.SafeBrowsingResponse" on path: DexPathList[[zip file "/data/app/com.android.chrome-PxcsJgPrdsd1orI9WHkgHA==/base.apk"],nativeLibraryDirectories=[/data/app/com.android.chrome-PxcsJgPrdsd1orI9WHkgHA==/lib/arm64, /data/app/com.android.chrome-PxcsJgPrdsd1orI9WHkgHA==/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]
at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (WebViewChromium.java:48)
at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:651)
at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:581)
at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int) (WebView.java:564)
at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet) (WebView.java:551)
at void android.webkit.WebView.(android.content.Context) (WebView.java:541)
at void com.google.android.gms.ads.internal.webview.u.(com.google.android.gms.ads.internal.webview.at, com.google.android.gms.ads.internal.webview.au, java.lang.String, boolean, mt, com.google.android.gms.ads.internal.util.client.m, com.google.android.gms.ads.internal.csi.l, com.google.android.gms.ads.internal.bn, com.google.android.gms.ads.internal.w, com.google.android.gms.ads.internal.clearcut.a) (:com.google.android.gms.dynamite_dynamitemodulesa@[email protected] (040400-197041431):1)
at java.lang.Object com.google.android.gms.ads.internal.webview.q.call() ((null):5)
from googleads-consent-sdk-android.
Tested with huawei mediapad m5 android 8 now too
same probmlem on all 3 devices
Rejecting re-init on previously-failed class java.lang.Class<com.android.webview.chromium.hb>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/webkit/SafeBrowsingResponse;
at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (WebViewChromium.java:48)
at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:651)
at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:581)
at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int) (WebView.java:564)
at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet) (WebView.java:551)
at void android.webkit.WebView.(android.content.Context) (WebView.java:541)
at void com.google.ads.consent.ConsentForm.(com.google.ads.consent.ConsentForm$Builder) (ConsentForm.java:80)
at void com.google.ads.consent.ConsentForm.(com.google.ads.consent.ConsentForm$Builder, com.google.ads.consent.ConsentForm$1) (ConsentForm.java:46)
at com.google.ads.consent.ConsentForm com.google.ads.consent.ConsentForm$Builder.build() (ConsentForm.java:215)
at void shoppinglist.com.checklist.MainApp$1.onConsentInfoUpdated(com.google.ads.consent.ConsentStatus) (MainApp.java:189)
at void com.google.ads.consent.ConsentInformation$ConsentInfoUpdateTask.onPostExecute(com.google.ads.consent.ConsentInformation$ConsentInfoUpdateResponse) (ConsentInformation.java:269)
at void com.google.ads.consent.ConsentInformation$ConsentInfoUpdateTask.onPostExecute(java.lang.Object) (ConsentInformation.java:189)
and
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.webkit.SafeBrowsingResponse" on path: DexPathList[[zip file "/data/app/com.android.chrome-D8mfMmKqHJm9k3quvUTxoA==/base.apk"],nativeLibraryDirectories=[/data/app/com.android.chrome-D8mfMmKqHJm9k3quvUTxoA==/lib/arm64, /data/app/com.android.chrome-D8mfMmKqHJm9k3quvUTxoA==/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64, /product/lib64]]
at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:93)
at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:379)
at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
at void com.android.webview.chromium.WebViewChromium.init(java.util.Map, boolean) (WebViewChromium.java:48)
at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int, java.util.Map, boolean) (WebView.java:651)
at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int, int) (WebView.java:581)
at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet, int) (WebView.java:564)
at void android.webkit.WebView.(android.content.Context, android.util.AttributeSet) (WebView.java:551)
at void android.webkit.WebView.(android.content.Context) (WebView.java:541)
at void com.google.ads.consent.ConsentForm.(com.google.ads.consent.ConsentForm$Builder) (ConsentForm.java:80)
at void com.google.ads.consent.ConsentForm.(com.google.ads.consent.ConsentForm$Builder, com.google.ads.consent.ConsentForm$1) (ConsentForm.java:46)
at com.google.ads.consent.ConsentForm com.google.ads.consent.ConsentForm$Builder.build() (ConsentForm.java:215)
from googleads-consent-sdk-android.
@frankyxcs do you receive the onConsentFormError()
callback? If so, what is the returned error description ?
from googleads-consent-sdk-android.
here is the formerror
05-22 01:25:20.319 1858-1858/Formerror: Consent form is not ready to be displayed.
05-22 01:25:21.168 1858-1858Formerror: Error: consent form can be used with custom provider selection only.
the second one is strange because im using the standart/general list in my admob account
my form is like this :
URL privacyUrl = null;
try {
// TODO: Replace with your app's privacy policy URL.
privacyUrl = new URL("http://www.test.de/datenschutzapp.html");
} catch (MalformedURLException e) {
e.printStackTrace();
// Handle error.
}
ConsentForm form = new ConsentForm.Builder(context, privacyUrl)
.withListener(new ConsentFormListener() {
@OverRide
public void onConsentFormLoaded() {
// Consent form loaded successfully.
}
@Override
public void onConsentFormOpened() {
// Consent form was displayed.
}
@Override
public void onConsentFormClosed(
ConsentStatus consentStatus, Boolean userPrefersAdFree) {
// Consent form was closed.
Log.e("Consent Status upd. is"," "+consentStatus.toString());
}
@Override
public void onConsentFormError(String errorDescription) {
// Consent form error.
Log.e("Formerror "," "+errorDescription.toString());
}
})
.withPersonalizedAdsOption()
.withNonPersonalizedAdsOption()
// .withAdFreeOption()
.build();
form.load();
form.show();
from googleads-consent-sdk-android.
@frankyxcs If you're using the Commonly Used list of ad providers, the consent form will always fail. Can only be used if you use a custom list with 12 or less providers (see the note under the Google-rendered consent form section here https://developers.google.com/admob/android/eu-consent)
from googleads-consent-sdk-android.
+1 to @MrPat's comment.
from googleads-consent-sdk-android.
Hmm im using only Google Admob Ads with my publisher id
So what can i do if i use only Google admob ?
getting the consent status and make my own dialog when the status is unknown ?
and then saving the consent like this for example:
in my dialog the user chooses non personalized then i can save it like this 👍
ConsentInformation.getInstance(context).setConsentStatus(ConsentStatus.NON_PERSONALIZED);
??? Any help if this way is ok would be good
from googleads-consent-sdk-android.
@frankyxcs if you have more than 12 ad providers, you cannot use the Google rendered consent form and must implement obtaining consent from the user. Once collected, you can use the setConsentStatus()
to set the consent status, just as you mentioned.
from googleads-consent-sdk-android.
hi rampara . i know what you mean now !
if i want to choose my own list then google is pre selected but i cannot save the list only with one provide in admob ?? Maybe i understand something wrong but if i use only Admob from Google i should be able to make my own list with just 1 provider too ?
so first im getting consent status with my admob publisher id !
so consent status is unknown
so my way is own dialog
user choose for example non-personalized
and i save the consent like this:
ConsentInformation.getInstance(context).setConsentStatus(ConsentStatus.NON_PERSONALIZED);
then when i try to get the status again it says NON_PERSONALIZED and everything looks fine.
but i have to load the list with
List adProviders = ConsentInformation.getInstance().getAdProviders();
too before i save the status or is this not relevant ?
from googleads-consent-sdk-android.
Hi ok i have made now my own list with 6 providers (and the status should have changed to custom providers) but the consent form is still not loading ??? i´m getting the same error.
what could be the problem now ? My code looks fine !
Maybe the consent sdk is not getting the status from admob that i´m using a custom list now ?
from googleads-consent-sdk-android.
its working now .
from googleads-consent-sdk-android.
The bad doc, I'm no need to use ConsentForm that always return info “Error: consent form can be used with custom provider selection only.” as i thought
from googleads-consent-sdk-android.
Related Issues (20)
- Please include the source code in the AAR artifact
- Setting .DEBUG_GEOGRAPHY_EEA causes requestConsentInfoUpdate to fail HOT 1
- ClassCastException - AdProvider
- Unable to resolve host "adservice.google.com" error HOT 4
- Support android-x?
- Add localized strings to the Google-rendered consent form HOT 2
- Allow consentform.html file URL to be passed in
- CCPA support
- Releases and tags sections are empty
- Please support AndroidX so we can disable Jetifier.
- Is this SDK replaced by the UMP SDK? HOT 1
- Releases section is empty
- Fatal Exception: android.content.res.Resources$NotFoundException (Android 5 and 5.1 issue)
- Fatal Exception: java.lang.IncompatibleClassChangeError Couldn't find com.google.gson.annotations.SerializedName.value
- Default branch is now `main`
- java.lang.UnsatisfiedLinkError: No implementation found for long com.android.tools.profiler.support.network.HttpTracker$Connection.nextId()
- Could not parse Event FE preflight response library 1.0.7 HOT 2
- Question: Is it ok to prevent the user from using the app if consent is not given? HOT 15
- Crash on API 21, 22 only HOT 2
- User consent triggered every time my app gets started HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from googleads-consent-sdk-android.