Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mainactivity.java上添加admob横幅代码后,我的应用程序崩溃_Java_Android - Fatal编程技术网

在mainactivity.java上添加admob横幅代码后,我的应用程序崩溃

在mainactivity.java上添加admob横幅代码后,我的应用程序崩溃,java,android,Java,Android,这是mainactivity.java的完整代码,我添加了以下内容: mAdView = (AdView)findViewById(R.id.adView); AdRequest adRequest = new AdRequest.Builder().build(); mAdView.loadAd(adRequest); import android.content.Intent; import android.os.Bundle; import android.support.annot

这是mainactivity.java的完整代码,我添加了以下内容:

mAdView = (AdView)findViewById(R.id.adView);

AdRequest adRequest = new AdRequest.Builder().build();

mAdView.loadAd(adRequest);

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;
import android.widget.AbsListView;
import android.widget.Toast;
import com.github.ybq.android.spinkit.SpinKitView;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;


import java.util.ArrayList;
import java.util.List;

import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;

public class MainActivity extends AppCompatActivity  {



    DrawerLayout drawerLayout;
    Toolbar toolbar;
    ActionBarDrawerToggle actionBarDrawerToggle;
    NavigationView navigationView;
    RecyclerView recyclerView;
    LinearLayoutManager manager;
    PostAdapter adapter;
    List<Item> items = new ArrayList<>();
    Boolean isScrolling = false;
    int currentItems, totalItems, scrollOutItems;
    String token = "";
    SpinKitView progress;
    AdView mAdView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mAdView = (AdView)findViewById(R.id.adView);
        AdRequest adRequest = new AdRequest.Builder().build();
        mAdView.loadAd(adRequest);

        recyclerView = (RecyclerView) findViewById(R.id.postList);
        manager = new LinearLayoutManager(this);
        adapter = new PostAdapter(this, items);
        recyclerView.setLayoutManager(manager);
        recyclerView.setAdapter(adapter);
        progress = (SpinKitView) findViewById(R.id.spin_kit);



setUpToolbar();
        navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {

                int id = item.getItemId();

              switch (id) {

                  case R.id.nav_home:

                      break;
                  case R.id.nav_aboute: {
                      Intent intent = new Intent(MainActivity.this, aboutus.class);
                      startActivity(intent);
                      break;
                  }
                  case R.id.nav_contact: {
                      Intent intent = new Intent(MainActivity.this, contactus.class);
                      startActivity(intent);
                      break;
                  }
                  case R.id.nav_share:
                      String shareBody = getString(R.string.app_name) + " " + getString(R.string.url_app_google_play);
                      Intent sharingIntent = new Intent(Intent.ACTION_SEND);
                      sharingIntent.setType("text/plain");
                      sharingIntent.putExtra(Intent.EXTRA_TEXT, shareBody);
                      sharingIntent.putExtra(Intent.EXTRA_SUBJECT, getString(R.string.app_name));
                      startActivity(Intent.createChooser(sharingIntent, getResources().getString(R.string.app_name)));
                      break;
              }
              return true;

          }
        });

        recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener() {
        @Override
        public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
            super.onScrollStateChanged(recyclerView, newState);
            if(newState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL)
            {
                isScrolling = true;
            }
        }

        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            super.onScrolled(recyclerView, dx, dy);
            currentItems = manager.getChildCount();
            totalItems = manager.getItemCount();
            scrollOutItems = manager.findFirstVisibleItemPosition();

            if(isScrolling && (currentItems + scrollOutItems == totalItems))
            {
                isScrolling = false;
                getData();
            }
        }


    });
    getData();
    }
    private void setUpToolbar()
    {
        drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);
        actionBarDrawerToggle = new ActionBarDrawerToggle(this,drawerLayout, toolbar,R.string.app_name, R.string.app_name);
        drawerLayout.addDrawerListener(actionBarDrawerToggle);
        actionBarDrawerToggle.syncState();


    }



    private void getData()
    {
        String url = BloggerAPI.url + "?key=" + BloggerAPI.key;
        if(token != ""){
            url = url+ "&pageToken="+ token;
        }
        if(token == null){
            return;
        }
        progress.setVisibility(View.VISIBLE);
        final Call<PostList> postList = BloggerAPI.getService().getPostList(url);
        postList.enqueue(new Callback<PostList>() {
            @Override
            public void onResponse(Call<PostList> call, Response<PostList> response) {
                PostList list = response.body();
                token = list.getNextPageToken();
                items.addAll(list.getItems());
                adapter.notifyDataSetChanged();
                Toast.makeText(MainActivity.this, "Success", Toast.LENGTH_SHORT).show();
                progress.setVisibility(View.GONE);
            }

            @Override
            public void onFailure(Call<PostList> call, Throwable t) {
                Toast.makeText(MainActivity.this, "Error Occured", Toast.LENGTH_SHORT).show();
            }


        });

        }

}

启动屏幕后应用程序崩溃的问题在哪里?

在初始化请求之前,您忘记在onCreate()中添加这一行

MobileAds.initialize(this, "YOUR_ADMOB_APP_ID");
请参阅下面的正确指南

我发现了错误

E/FA: Task exception on worker thread: java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value.  Expected 12451000 but found 7095000.  You must have the following declaration within the <application> element:     <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />: com.google.android.gms.internal.measurement.zzik.zzdf(Unknown Source)

E/FA:worker线程上的任务异常:java.lang.IllegalStateException:应用程序的AndroidManifest.xml中的元数据标记没有正确的值。预计为12451000,但发现7095000。元素中必须有以下声明::com.google.android.gms.internal.measurement.zzik.zzdf(未知源)
我找到的解决方案是将此代码添加到清单中

<meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />


感谢大家的帮助

从app gradle文件更改您的播放服务广告版本

implementation 'com.google.android.gms:play-services-ads:16.0.0'

尝试更高版本或更低版本这将起作用

将此代码添加到您的menifest文件中

<meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="ca-app-pub-2834184685160637~xxxxxx"/>`
`

您是否调用
MobileAds.initialize(…)
任何地方(代码中未显示)?此外,如果您遇到崩溃,请发布stacktrace。是的,添加了import com.google.android.gms.ads.MobileAds;初始化(这是“ca-app-pub-xxxxx~xxxxxx”);但是仍然崩溃您应该从Logcat发布stacktrace以显示崩溃是什么。E/FA:worker线程上的任务异常:java.lang.IllegalStateException:应用程序的AndroidManifest.xml中的元数据标记没有正确的值。预计为12451000,但发现7095000。您必须在元素中有以下声明::com.google.android.gms.internal.measurement.zzik.zzdf(未知源代码)OP表明他确实在发布的代码之外的某个地方调用了它(参见注释)。另外,不打电话也不会导致崩溃(我刚刚在一个应用程序中试过)。
<meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
implementation 'com.google.android.gms:play-services-ads:16.0.0'
<meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="ca-app-pub-2834184685160637~xxxxxx"/>`