4

我正在android应用程序中实现华为广告。我已经浏览了所有https://developer.huawei.com/consumer/en/doc/development/HMSCore-Guides/publisher-service-banner-0000001050066915并成功实施了广告,但 android studio preview 给了我错误并且是在xml中添加华为广告时不显示预览。删除后华为广告预览显示。

以下是我的布局:

 <?xml version="1.0" encoding="utf-8"?>
<com.huawei.hms.ads.nativead.NativeView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/native_video_view"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:background="#FFFFFF"
    android:orientation="vertical">
    <com.huawei.hms.ads.nativead.MediaView
        android:id="@+id/ad_media"
        android:layout_width="match_parent"
        android:layout_height="@dimen/_200sdp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toTopOf="parent"/>
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="@dimen/_50sdp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        android:background="@color/white">
        <TextView
            android:id="@+id/ad_title"
            android:layout_width="180dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="24dp"
            android:layout_marginTop="16dp"
            android:alpha="1"
            android:textColor="#000000"
            android:textSize="@dimen/hiad_text_13_sp"
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintStart_toStartOf="parent"/>
        <TextView
            android:id="@+id/ad_source"
            android:layout_width="wrap_content"
            android:layout_height="19dp"
            android:layout_marginStart="24dp"
            android:layout_marginTop="2dp"
            android:layout_marginBottom="16dp"
            android:alpha="0.6"
            android:text="asdfasj"
            android:maxWidth="158dp"
            android:textColor="#666666"
            android:textSize="@dimen/hiad_text_12_sp"
            app:layout_constraintStart_toStartOf="@id/ad_title"
            app:layout_constraintEnd_toStartOf="@id/ad_flag"
            app:layout_constraintTop_toBottomOf="@id/ad_title"
        />

        <TextView
            android:id="@+id/ad_flag"
            android:layout_width="20dp"
            android:layout_height="14dp"
            android:background="@drawable/native_flag_rounded_corners_shape"
            android:text="@string/ad_flag"
            android:textColor="#FFFFFF"
            android:textSize="8sp"
            android:layout_marginStart="@dimen/_10sdp"
            android:textStyle="bold"
            app:layout_constraintBottom_toBottomOf="@id/ad_source"
            app:layout_constraintStart_toEndOf="@id/ad_source"
            app:layout_constraintTop_toTopOf="@id/ad_source" />

        <Button
            android:id="@+id/ad_call_to_action"
            android:layout_width="72dp"
            android:layout_height="26dp"
            android:layout_alignParentEnd="true"
            android:background="@drawable/native_button_rounded_corners_shape"
            android:textColor="#FFFFFF"
            android:textSize="10sp"
            android:layout_marginEnd="@dimen/_20sdp"
            app:layout_constraintBottom_toBottomOf="@+id/ad_source"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent" />

    </androidx.constraintlayout.widget.ConstraintLayout>
</com.huawei.hms.ads.nativead.NativeView>

在此处输入图像描述 以下是我在将根标签删除到约束布局时遇到的错误 。预览在屏幕上可见,所有错误都消失了。在这两个标签中,我面临以下异常:

FirstException:不要在预览中创建线程

java.lang.IllegalStateException: com.huawei.hms.ads.kn.newThread at java.util.concurrent.ThreadPoolExecutor$Worker.(ThreadPoolExecutor.java:623) at java的预览中不允许创建新线程。 util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:912) at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:1343) at com.huawei.hms.ads.km.Code at com.huawei.hms。 ads.km.I at com.huawei.hms.ads.lj.Code at com.huawei.hms.ads.lj.V at com.huawei.hms.ads.dl.Z at com.huawei.hms.ads. dl.V 在 com.huawei.hms.ads.dl.Code 在 com.huawei.openalliance.ad.views.PPSNativeView.Code 在 com.huawei.openalliance.ad.views.PPSNativeView。在 com.huawei.hms.ads.nativead.NativeView。在 jdk.internal 的 jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(NativeConstructorAccessorImpl.java:-2)。

第二个异常:无法实例化一个或多个类 无法实例化以下类: - com.huawei.hms.ads.nativead.MediaView (Open Class, Show Exception, Clear Cache) - com.huawei.openalliance.ad.views .VideoView(打开类、显示异常、清除缓存) 提示:在自定义视图中使用 View.isInEditMode() 可跳过代码或在 IDE 中显示示例数据。如果这是一个意外错误,您也可以尝试构建项目,然后手动刷新布局。异常详情 java.lang.NullPointerException at com.huawei.openalliance.ad.views.NativeVideoView.Code at com.huawei.openalliance.ad.views.NativeVideoView。在 com.huawei.hms.ads.nativead.MediaView.Code 在 com.huawei.hms.ads.nativead.MediaView。在 jdk 的 jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(NativeConstructorAccessorImpl.java:-2)。

我已使缓存无效并重新启动 Android Studio,但还没有任何效果。谁能帮我渲染预览。任何帮助,将不胜感激。谢谢

4

1 回答 1

0

目前,Ads kit SDK引用了HMS base SDK代码,但是好像没有集成HMS base SDK。

因此,在预览期间会发生以下错误。

在此处输入图像描述

如果您选择不集成HMS base SDK,Ads SDK功能不受影响,但在预览时会受到影响。

所以有两种选择供大家参考:一种是你可以尝试集成hms base sdk,另一种是忽略这个预览错误,因为这不会影响实际操作。

于 2021-08-26T05:56:03.113 回答