在Android Studio中,执行任务“: app:checkDebugAarMetadata”失败。

5

我正在尝试通过中介测试来测试Facebook受众网络出价与Google Admob的集成。我按照Google Admob提供的步骤设置了中介测试套件,但当Android Studio尝试构建应用程序时,我最终遇到了以下错误:

Execution failed for task ':app:checkDebugAarMetadata'.
> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
   > Could not find com.google.android:flexbox:1.1.1.
     Searched in the following locations:
       - https://dl.google.com/dl/android/maven2/com/google/android/flexbox/1.1.1/flexbox-1.1.1.pom
       - https://repo.maven.apache.org/maven2/com/google/android/flexbox/1.1.1/flexbox-1.1.1.pom
     Required by:
         project :app > com.google.android.ads:mediation-test-suite:2.0.0

Possible solution:
 - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html

我真的不确定我缺少什么。我已经在我的清单文件中正确添加了中介套件的实现,也将我的Google Admob应用ID添加到了清单文件中,并设置了测试设备。但仍然出现这个错误。有人可以帮我解决这个错误吗?谢谢你的帮助!

3个回答

1

今天我也遇到了同样的问题,花费了数小时来解决这个错误。

  1. 从gradle项目中的allprojectsbuildscript中删除jcenter(),然后同步gradle。
  2. 在之前删除的相同位置再次添加jcenter(),再次同步。
  3. 错误已经消失了!

jcenter()已被弃用。 - Abhishek Dutt
如果您有新的问题,请通过单击提问按钮来提出。如果它有助于提供上下文,请包含此问题的链接。- 来自审核 - Abhishek Dutt

0

为了帮助尝试使用admob的Mediation测试套件的人们,只需添加一些额外细节。(特别是如果出现flexbox1.1.1错误问题)

细节决定成败。以下是使其正常工作所需的所有步骤:

1 ... 将您的发布者ID从admob添加到清单中:

<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="YOUR_ADMOB_PUB_ID"/>

2...如果您之前已从build.gradle(Project)中删除了jcenter() [因为它已被弃用],请将其放回repositories。

repositories {
  jcenter()
  mavenCentral()
  google()
}

3...请确保在您的gradle.properties文件中设置了android.useAndroidX=true和android.enableJetifier=true。

android.useAndroidX=true
android.enableJetifier=true

4... 将实现添加到 build.gradle(Module) 文件中

implementation 'com.google.android.ads:mediation-test-suite:2.0.0'

5...在build.gradle(Module)中更改您的调试选项以防止崩溃。添加debuggable true并确保minify和shrink为false。

debug {
        debuggable true
        minifyEnabled false
        shrinkResources false
    }

6...在广告系统初始化后,应添加中介测试套件的代码。确保MobileAds.initialize(...)已完成。

Activty tActivity = this;
    MobileAds.initialize(tActivity, new OnInitializationCompleteListener() {
        @Override
        public void onInitializationComplete(InitializationStatus initializationStatus) {
            Map<String, AdapterStatus> statusMap = initializationStatus.getAdapterStatusMap();
            for (String adapterClass : statusMap.keySet()) {
                AdapterStatus status = statusMap.get(adapterClass);
                 Log.d("Mediation", String.format(
                         "Adapter name: %s, Description: %s, Latency: %d",
                         adapterClass, status.getDescription(), status.getLatency()));
            }
            loadGoogleBanner();
            loadFullScreen();
            tActivity.runOnUiThread(new Runnable() {
                public void run() {
                    MediationTestSuite.launch(tActivity);
                }
            });
        }
    });

7...重新同步。清理并重建。如有必要,请使缓存失效。重要提示!不要将flexbox导入到实现中。jcenter()已经知道在哪里找到它。


0

尝试将mavencenter()更改为jcenter(),在调解适用测试工作后,只需返回mavencenter()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接