为什么我的应用程序android在我添加GDPR EU许可时崩溃?
我将GDPR代码添加到我的应用程序中,但这会使它崩溃 这是我的功能:为什么我的应用程序android在我添加GDPR EU许可时崩溃?,android,android-studio,Android,Android Studio,我将GDPR代码添加到我的应用程序中,但这会使它崩溃 这是我的功能: private void loadGPDR() { ConsentInformation consentInformation = ConsentInformation.getInstance(this); String[] publisherIds = {"yyyyyyyyyyyyyy"}; consentInformation.requestConsentInfoUpdat
private void loadGPDR() {
ConsentInformation consentInformation = ConsentInformation.getInstance(this);
String[] publisherIds = {"yyyyyyyyyyyyyy"};
consentInformation.requestConsentInfoUpdate(publisherIds, new ConsentInfoUpdateListener() {
@Override
public void onConsentInfoUpdated(ConsentStatus consentStatus) {
// User's consent status successfully updated.
}
@Override
public void onFailedToUpdateConsentInfo(String errorDescription) {
// User's consent status failed to update.
}
});
URL privacyUrl = null;
try {
// TODO: Replace with your app's privacy policy URL.
privacyUrl = new URL("https://sites.google.com/view/yyyyyyyyyy");
} catch (MalformedURLException e) {
e.printStackTrace();
// Handle error.
}
form = new ConsentForm.Builder(this, privacyUrl)
.withListener(new ConsentFormListener() {
@Override
public void onConsentFormLoaded() {
// Consent form loaded successfully.
form.show();
}
@Override
public void onConsentFormOpened() {
// Consent form was displayed.
}
@Override
public void onConsentFormClosed(
ConsentStatus consentStatus, Boolean userPrefersAdFree) {
// Consent form was closed.
}
@Override
public void onConsentFormError(String errorDescription) {
// Consent form error.
}
})
.withPersonalizedAdsOption()
.withNonPersonalizedAdsOption()
.withAdFreeOption()
.build();
form.load();
}
错误:
Process: com.code.myapplication, PID: 28444
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.code.myapplication/com.code.myapplication.MainActivity}: android.content.res.Resources$NotFoundException: String resource ID #0x2040003
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2358)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420)
at android.app.ActivityThread.access$900(ActivityThread.java:154)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5294)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:114)
Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x2040003
at android.content.res.Resources.getText(Resources.java:321)
at android.content.res.XResources.getText(XResources.java:837)
at android.content.res.Resources.getString(Resources.java:407)
at com.android.org.chromium.content.browser.ContentViewCore.setContainerView(ContentViewCore.java:684)
at com.android.org.chromium.content.browser.ContentViewCore.initialize(ContentViewCore.java:608)
at com.android.org.chromium.android_webview.AwContents.createAndInitializeContentViewCore(AwContents.java:631)
at com.android.org.chromium.android_webview.AwContents.setNewAwContents(AwContents.java:780)
at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:619)
at com.android.org.chromium.android_webview.AwContents.<init>(AwContents.java:556)
at com.android.webview.chromium.WebViewChromium.initForReal(WebViewChromium.java:311)
at com.android.webview.chromium.WebViewChromium.access$100(WebViewChromium.java:96)
at com.android.webview.chromium.WebViewChromium$1.run(WebViewChromium.java:263)
at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.drainQueue(WebViewChromium.java:123)
at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue$1.run(WebViewChromium.java:110)
at com.android.org.chromium.base.ThreadUtils.runOnUiThread(ThreadUtils.java:144)
at com.android.webview.chromium.WebViewChromium$WebViewChromiumRunQueue.addTask(WebViewChromium.java:107)
at com.android.webview.chromium.WebViewChromium.init(WebViewChromium.java:260)
at android.webkit.WebView.<init>(WebView.java:554)
at android.webkit.WebView.<init>(WebView.java:489)
at android.webkit.WebView.<init>(WebView.java:472)
at android.webkit.WebView.<init>(WebView.java:459)
at android.webkit.WebView.<init>(WebView.java:449)
at com.google.ads.consent.ConsentForm.<init>(ConsentForm.java:80)
at com.google.ads.consent.ConsentForm.<init>(ConsentForm.java:46)
at com.google.ads.consent.ConsentForm$Builder.build(ConsentForm.java:210)
at com.code.myapplication.MainActivity.loadGPDR(MainActivity.java:70)
at com.code.myapplication.MainActivity.onCreate(MainActivity.java:18)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311)
Process:com.code.myapplication,PID:28444
java.lang.RuntimeException:无法启动活动组件信息{com.code.myapplication/com.code.myapplication.MainActivity}:android.content.res.Resources$NotFoundException:字符串资源ID#0x2040003
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2358)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420)
在android.app.ActivityThread.access$900(ActivityThread.java:154)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:135)
位于android.app.ActivityThread.main(ActivityThread.java:5294)
位于java.lang.reflect.Method.invoke(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:372)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run上(ZygoteInit.java:904)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
位于de.robv.android.xposed.XposedBridge.main(XposedBridge.java:114)
原因:android.content.res.Resources$NotFoundException:字符串资源ID#0x2040003
位于android.content.res.Resources.getText(Resources.java:321)
位于android.content.res.XResources.getText(XResources.java:837)
位于android.content.res.Resources.getString(Resources.java:407)
在com.android.org.chromium.content.browser.ContentViewCore.setContainerView(ContentViewCore.java:684)
在com.android.org.chromium.content.browser.ContentViewCore.initialize(ContentViewCore.java:608)上
位于com.android.org.chromiu.android_webview.AwContents.createAndInitializeContentViewCore(AwContents.java:631)
在com.android.org.chromiu.android_webview.AwContents.setNewAwContents(AwContents.java:780)
在com.android.org.chromium.android_webview.AwContents.(AwContents.java:619)
在com.android.org.chromium.android_webview.AwContents.(AwContents.java:556)
位于com.android.webview.chromium.webviewcromium.initForReal(webviewcromium.java:311)
com.android.webview.chromium.webviewcromium.access$100(webviewcromium.java:96)
位于com.android.webview.chromium.webviewcromium$1.run(webviewcromium.java:263)
在com.android.webview.chromium.webviewcromium$webviewcromiumrunqueue.drainQueue(webviewcromium.java:123)
在com.android.webview.chromium.webviewcromium$webviewcromium运行$1.run(webviewcromium.java:110)
位于com.android.org.chromium.base.ThreadUtils.runOnUiThread(ThreadUtils.java:144)
在com.android.webview.chromium.webviewcromium$webviewcromiumrunqueue.addTask(webviewcromium.java:107)
位于com.android.webview.chromium.webviewcromium.init(webviewcromium.java:260)
位于android.webkit.WebView(WebView.java:554)
位于android.webkit.WebView(WebView.java:489)
位于android.webkit.WebView(WebView.java:472)
位于android.webkit.WebView(WebView.java:459)
位于android.webkit.WebView(WebView.java:449)
在com.google.ads.approvement.approvementForm上(approvementForm.java:80)
在com.google.ads.approvement.approvementForm上(approvementForm.java:46)
在com.google.ads.approvement.approvementForm$Builder.build(approvementForm.java:210)上
位于com.code.myapplication.MainActivity.loadGPDR(MainActivity.java:70)
位于com.code.myapplication.MainActivity.onCreate(MainActivity.java:18)
位于android.app.Activity.performCreate(Activity.java:5990)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311)上
Belyamani的评论对我很有用。
只需更新appcompat库即可:
发件人:
致:
原因:android.content.res.Resources$NotFoundException:String resource ID#0x2040003
您缺少一个字符串资源(..\app\src\main\res\values\strings.xml
?)是的,我理解消息,但我没有使用您在我的函数中看到的任何字符串资源。当我删除该函数时,应用程序不会崩溃!清理你的项目并重建它。谢谢兄弟!我找到了解决方案,我将appcompat库从androidx.appcompat:appcompat:1.1.0改为androidx.appcompat:appcompat:1.1.0-rc01,我在三星Galaxy A70(Android 5.1)上也遇到了同样的问题。但在其他设备中,它也能正常工作。我也会试试你的解决方案
implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'androidx.appcompat:appcompat:1.2.0-alpha03'