我尝试在退出警报时实施原生广告。而我得到了这个错误
Process: com.developer.app, PID: 9244
java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.ads.nativetemplates.TemplateView.setStyles(com.google.android.ads.nativetemplates.NativeTemplateStyle)' on a null object reference
at com.tiffani.phone.cleaner.MainActivity$1.onUnifiedNativeAdLoaded(MainActivity.java:72)
at com.google.android.gms.internal.ads.zzafd.zza(com.google.android.gms:play-services-ads-lite@@19.0.1:6)
at com.google.android.gms.internal.ads.zzbyo.zzakd(com.google.android.gms:play-services-ads@@19.0.1:182)
at com.google.android.gms.internal.ads.zzbyr.run(Unknown Source:2)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at com.google.android.gms.internal.ads.zzdkp.zzb(com.google.android.gms:play-services-ads-lite@@19.0.1:9)
at com.google.android.gms.internal.ads.zzawi.zzb(com.google.android.gms:play-services-ads@@19.0.1:8)
at com.google.android.gms.internal.ads.zzdkp.dispatchMessage(com.google.android.gms:play-services-ads-lite@@19.0.1:7)
at android.os.Looper.loop(Looper.java:201)
at android.app.ActivityThread.main(ActivityThread.java:6810)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:873)
这是我的主要活动代码
package com.developer.app;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import androidx.core.content.ContextCompat;
import androidx.viewpager.widget.ViewPager;
import com.google.android.ads.nativetemplates.NativeTemplateStyle;
import com.google.android.ads.nativetemplates.TemplateView;
import com.google.android.gms.ads.AdLoader;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.MobileAds;
import com.google.android.gms.ads.formats.UnifiedNativeAd;
import com.google.android.material.tabs.TabLayout;
import com.mikepenz.fontawesome_typeface_library.FontAwesome;
import com.mikepenz.materialdrawer.AccountHeader;
import com.mikepenz.materialdrawer.AccountHeaderBuilder;
import com.mikepenz.materialdrawer.Drawer;
import com.mikepenz.materialdrawer.DrawerBuilder;
import com.mikepenz.materialdrawer.model.PrimaryDrawerItem;
import com.mikepenz.materialdrawer.model.ProfileDrawerItem;
import com.mikepenz.materialdrawer.model.interfaces.IDrawerItem;
import com.mikepenz.materialdrawer.model.interfaces.IProfile;
import com.tiffani.phone.cleaner.PagerAdapter.MyPagerAdapter;
import com.tiffani.phone.cleaner.utils.AdmobAds;
public class MainActivity extends AppCompatActivity {
public static TextView name;
SharedPreferences sharedpreferences;
SharedPreferences.Editor editor;
private View view;
// private String adMode;
// private AdmobAds admobAds;
private Toolbar toolbar1;
private Context context;
private UnifiedNativeAd unifiedNativeAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (eMjSRgxE(getApplicationContext().getPackageName(), "MD5").substring(9, 10).compareTo("3") != 0) {
this.finishAffinity();
}
setContentView(R.layout.activity_main);
MobileAds.initialize(this, "ca-app-pub-3940256099942544~3347511713");
AdLoader adLoader = new AdLoader.Builder(this, "ca-app-pub-3940256099942544/1044960115")
.forUnifiedNativeAd(new UnifiedNativeAd.OnUnifiedNativeAdLoadedListener() {
@Override
public void onUnifiedNativeAdLoaded(UnifiedNativeAd unifiedNativeAd) {
NativeTemplateStyle styles = new
NativeTemplateStyle.Builder().build();
TemplateView template = findViewById(R.id.my_template_native);
template.setStyles(styles);
template.setNativeAd(unifiedNativeAd);
}
})
.build();
adLoader.loadAd(new AdRequest.Builder().build());
我知道错误显示为“ java.lang.NullPointerException:尝试调用虚拟方法'void com.google.android.ads.nativetemplates.TemplateView.setStyles(com.google.android.ads.nativetemplates.NativeTemplateStyle)”空对象引用”
这是我的activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
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:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
android:orientation="vertical">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="@style/AppTheme.AppBarOverlay">
<androidx.appcompat.widget.Toolbar
android:background="@color/background"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:popupTheme="@style/AppTheme.PopupOverlay">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar1"
android:layout_width="@dimen/_35sdp"
android:layout_height="@dimen/_35sdp"
android:theme="@style/AppTheme.AppBarOverlay"
app:popupTheme="@style/AppTheme.PopupOverlay">
<ImageView
android:id="@+id/btn_slide"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/ic_menu_white_35dp" />
</androidx.appcompat.widget.Toolbar>
<TextView
android:textStyle="bold"
android:gravity="center"
android:textAppearance="?android:textAppearanceLarge"
android:textColor="#FFFFFF"
android:id="@+id/name"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</androidx.appcompat.widget.Toolbar>
</com.google.android.material.appbar.AppBarLayout>
<androidx.viewpager.widget.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_gravity="top"
android:layout_weight="1" />
<com.google.android.material.tabs.TabLayout
android:id="@+id/tab_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#F22938"
android:elevation="6dp"
app:tabBackground="@drawable/tab_color_selector"
android:minHeight="?attr/actionBarSize"
android:layout_gravity="bottom"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:tabIndicatorColor="#FFFFFF"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="51dp"
android:gravity="center">
<com.google.android.gms.ads.AdView
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_alignParentBottom="true"
ads:adSize="BANNER"
ads:adUnitId="@string/banner">
</com.google.android.gms.ads.AdView>
</LinearLayout>
这是我的出口布局
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="EXIT NATIVE ADS"
android:gravity="center_horizontal"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.google.android.ads.nativetemplates.TemplateView
android:id="@+id/my_template_native"
app:gnt_template_type="@layout/gnt_small_template_view"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
</RelativeLayout>
您能解决我的问题吗?