Giter Site home page Giter Site logo

Comments (13)

rampara avatar rampara commented on July 24, 2024

@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.

frankyxcs avatar frankyxcs commented on July 24, 2024

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.

frankyxcs avatar frankyxcs commented on July 24, 2024

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.

rampara avatar rampara commented on July 24, 2024

@frankyxcs do you receive the onConsentFormError() callback? If so, what is the returned error description ?

from googleads-consent-sdk-android.

frankyxcs avatar frankyxcs commented on July 24, 2024

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.

MrPat avatar MrPat commented on July 24, 2024

@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.

rampara avatar rampara commented on July 24, 2024

+1 to @MrPat's comment.

from googleads-consent-sdk-android.

frankyxcs avatar frankyxcs commented on July 24, 2024

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.

rampara avatar rampara commented on July 24, 2024

@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.

frankyxcs avatar frankyxcs commented on July 24, 2024

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.

frankyxcs avatar frankyxcs commented on July 24, 2024

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.

frankyxcs avatar frankyxcs commented on July 24, 2024

its working now .

from googleads-consent-sdk-android.

ieewbbwe avatar ieewbbwe commented on July 24, 2024

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)

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.