Ich bin komplett neu in Android Studio und Java, aber es geschafft, meine eigene App durch viele Tutorials zu machen. Das Problem ist, dass jedes Mal, wenn ich auf dem Startbildschirm auf meine App klicke (Starten/Hochfahren), es mich sofort dazu bringt, die apk (Crashes) zu verlassen. Ich bin mir nicht sicher warum. Ich glaube, es ist mit meiner Main_Activity-Datei verbunden, aber ich bin unsicher. Ich folgte dem Tutorial von Google, "AdMob für Android - Einstieg in Android Studio". Ich habe eine neue leere Android-App erstellt und dem Tutorial gefolgt, und es hat gut funktioniert. Aber in meiner aktuellen App scheint es auf mich zu stürzen.AdMob stürzt beim Start App
Wenn jemand eine Idee hat, wie man es beheben kann, lass es mich wissen. Ich habe dieses Problem seit zwei Wochen und kann es immer noch nicht herausfinden. Danke. Hier ist meine Dateien für meine aktuelle App:
Main_Activity.java:
package com.xxxxxxx.xxxxxxxxxxx;
import com.xxxxxxx.xxxxxxxx.R;
import android.annotation.TargetApi;
import android.graphics.RectF;
import android.os.Build;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.util.SparseArrayCompat;
import android.support.v4.view.ViewPager;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.Toolbar;
import android.text.Spannable;
import android.text.SpannableString;
import android.util.TypedValue;
import android.view.View;
import android.view.animation.AccelerateDecelerateInterpolator;
import android.widget.ImageView;
import android.widget.ScrollView;
import android.widget.TextView;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import com.astuetz.PagerSlidingTabStrip;
import com.flaviofaria.kenburnsview.KenBurnsView;
import com.nineoldandroids.view.ViewHelper;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdView;
import java.util.Random;
public class MainActivity extends ActionBarActivity implements ScrollTabHolder, ViewPager.OnPageChangeListener {
private static AccelerateDecelerateInterpolator sSmoothInterpolator = new AccelerateDecelerateInterpolator();
private KenBurnsView mHeaderPicture;
private View mHeader;
private PagerSlidingTabStrip mPagerSlidingTabStrip;
private ViewPager mViewPager;
private PagerAdapter mPagerAdapter;
private Toolbar toolbar;
private TextView title;
private ImageView icon;
private int mActionBarHeight;
private int mMinHeaderHeight;
private int mHeaderHeight;
private int mMinHeaderTranslation;
private ImageView mHeaderLogo;
private RectF mRect1 = new RectF();
private RectF mRect2 = new RectF();
private TypedValue mTypedValue = new TypedValue();
private SpannableString mSpannableString;
private AlphaForegroundColorSpan mAlphaForegroundColorSpan;
int[] photos={R.drawable.photo1, R.drawable.phpto2, R.drawable.photo3, R.drawable.photo4, R.drawable.photo5, R.drawable.photo6, R.drawable.photo7, R.drawable.photo8, R.drawable.photo9};
KenBurnsView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AdView mAdView = (AdView) findViewById(R.id.adView); AdRequest adRequest = new AdRequest.Builder().build(); mAdView.loadAd(adRequest);
mMinHeaderHeight = getResources().getDimensionPixelSize(R.dimen.min_header_height);
mHeaderHeight = getResources().getDimensionPixelSize(R.dimen.header_height);
mMinHeaderTranslation = -mMinHeaderHeight + getActionBarHeight();
setContentView(R.layout.activity_main);
imageView =(KenBurnsView) findViewById(R.id.header_picture);
toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
icon = (ImageView) findViewById(R.id.icon);
title = (TextView) findViewById(R.id.title);
mSpannableString = new SpannableString(getString(R.string.actionbar_title));
mHeaderLogo = (ImageView) findViewById(R.id.header_thumbnail);
mHeader = findViewById(R.id.header);
mPagerSlidingTabStrip = (PagerSlidingTabStrip) findViewById(R.id.tabs);
mViewPager = (ViewPager) findViewById(R.id.pager);
mViewPager.setOffscreenPageLimit(4);
mPagerAdapter = new PagerAdapter(getSupportFragmentManager());
mPagerAdapter.setTabHolderScrollingContent(this);
mViewPager.setAdapter(mPagerAdapter);
mPagerSlidingTabStrip.setViewPager(mViewPager);
mPagerSlidingTabStrip.setOnPageChangeListener(this);
mAlphaForegroundColorSpan = new AlphaForegroundColorSpan(0xffffffff);
ViewHelper.setAlpha(getActionBarIconView(), 0f);
getSupportActionBar().setBackgroundDrawable(null);
final Handler handler = new Handler();
Runnable runnable = new Runnable() {
int i=0;
public void run() {
// change images randomly
Random ran=new Random();
int i=ran.nextInt(photos.length);
//set image resources
imageView.setImageResource(photos[i]);
i++;
if(i>photos.length-1)
{
i=0;
}
handler.postDelayed(this, 7000); //for interval...
}
};
handler.postDelayed(runnable, 7000); //for initial delay..
}
@Override
public void onPageScrollStateChanged(int arg0) {
// nothing
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
// nothing
}
@Override
public void onPageSelected(int position) {
SparseArrayCompat<ScrollTabHolder> scrollTabHolders = mPagerAdapter.getScrollTabHolders();
ScrollTabHolder currentHolder = scrollTabHolders.valueAt(position);
currentHolder.adjustScroll((int) (mHeader.getHeight() + ViewHelper.getTranslationY(mHeader)), mHeaderHeight);
}
@Override
public void onScroll(ScrollView view, int x, int y, int oldX, int oldY, int pagePosition)
{
if (mViewPager.getCurrentItem() == pagePosition)
{
mHeader.setTranslationY(Math.max(-view.getScrollY(), mMinHeaderTranslation));
float ratio = clamp(mHeader.getTranslationY()/mMinHeaderTranslation, 0.0f, 1.0f);
interpolate(mHeaderLogo, getActionBarIconView(), sSmoothInterpolator.getInterpolation(ratio));
setTitleAlpha(clamp(5.0F * ratio - 4.0F, 0.0F, 1.0F));
}
}
@Override
public void adjustScroll(int scrollHeight,int headerTranslationY) {
// nothing
}
public static float clamp(float value, float max, float min) {
return Math.max(Math.min(value, min), max);
}
private void interpolate(View view1, View view2, float interpolation) {
getOnScreenRect(mRect1, view1);
getOnScreenRect(mRect2, view2);
float scaleX = 1.0F + interpolation * (mRect2.width()/mRect1.width() - 1.0F);
float scaleY = 1.0F + interpolation * (mRect2.height()/mRect1.height() - 1.0F);
float translationX = 0.5F * (interpolation * (mRect2.left + mRect2.right - mRect1.left - mRect1.right));
float translationY = 0.5F * (interpolation * (mRect2.top + mRect2.bottom - mRect1.top - mRect1.bottom));
ViewHelper.setTranslationX(view1, translationX);
ViewHelper.setTranslationY(view1, translationY - ViewHelper.getTranslationY(mHeader));
ViewHelper.setScaleX(view1, scaleX);
ViewHelper.setScaleY(view1, scaleY);
}
private RectF getOnScreenRect(RectF rect, View view) {
rect.set(view.getLeft(), view.getTop(), view.getRight(), view.getBottom());
return rect;
}
@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public int getActionBarHeight() {
if (mActionBarHeight != 0) {
return mActionBarHeight;
}
if(Build.VERSION.SDK_INT > Build.VERSION_CODES.HONEYCOMB){
getTheme().resolveAttribute(android.R.attr.actionBarSize, mTypedValue, true);
}else{
getTheme().resolveAttribute(R.attr.actionBarSize, mTypedValue, true);
}
mActionBarHeight = TypedValue.complexToDimensionPixelSize(mTypedValue.data, getResources().getDisplayMetrics());
return mActionBarHeight;
}
private void setTitleAlpha(float alpha) {
mAlphaForegroundColorSpan.setAlpha(alpha);
mSpannableString.setSpan(mAlphaForegroundColorSpan, 0, mSpannableString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
title.setText(mSpannableString);
}
private ImageView getActionBarIconView() {
return icon;
}
public class PagerAdapter extends FragmentPagerAdapter {
private SparseArrayCompat<ScrollTabHolder> mScrollTabHolders;
private final String[] TITLES = { "Home", "Install", "About", "Media", "Survey", "Upcoming", "News", "Help", "Credits", "Share", "More"};
private ScrollTabHolder mListener;
public PagerAdapter(FragmentManager fm) {
super(fm);
mScrollTabHolders = new SparseArrayCompat<ScrollTabHolder>();
}
public void setTabHolderScrollingContent(ScrollTabHolder listener) {
mListener = listener;
}
@Override
public CharSequence getPageTitle(int position) {
return TITLES[position];
}
@Override
public int getCount() {
return TITLES.length;
}
@Override
public Fragment getItem(int position) {
ScrollTabHolderFragment fragment = (ScrollTabHolderFragment) ScrollViewFragment.newInstance(position);
mScrollTabHolders.put(position, fragment);
if (mListener != null) {
fragment.setScrollTabHolder(mListener);
}
return fragment;
}
public SparseArrayCompat<ScrollTabHolder> getScrollTabHolders() {
return mScrollTabHolders;
}
}
public class LinkButtons extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
public void goToSo (View view) {
goToUrl ("http://stackoverflow.com/");
}
public void goToSu (View view) {
goToUrl ("http://superuser.com/");
}
private void goToUrl (String url) {
Uri uriUrl = Uri.parse(url);
Intent launchBrowser = new Intent(Intent.ACTION_VIEW, uriUrl);
startActivity(launchBrowser);
}
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:ads="http://schemas.android.com/apk/res-auto"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<FrameLayout
android:id="@+id/header"
android:layout_width="match_parent"
android:layout_height="298dp" >
<com.google.android.gms.ads.AdView
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_ad_unit_id">
</com.google.android.gms.ads.AdView>
<com.flaviofaria.kenburnsview.KenBurnsView
android:id="@+id/header_picture"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/photo1"
/>
<ImageView
android:id="@+id/header_thumbnail"
android:layout_width="@dimen/header_logo_size"
android:layout_height="@dimen/header_logo_size"
android:layout_gravity="center"
android:src="@drawable/header_thumbnail" />
<com.astuetz.PagerSlidingTabStrip
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="48dip"
android:layout_gravity="bottom"
android:textColor="#ffffff"
app:pstsIndicatorColor="#ffffff"
app:pstsDividerColor="@android:color/transparent"
android:background="@android:color/transparent" />
</FrameLayout>
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="56dp" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal" >
<ImageView
android:id="@+id/icon"
android:layout_marginLeft="12dp"
android:layout_marginTop="6dp"
android:layout_marginBottom="6dp"
android:layout_width="44dp"
android:layout_height="44dp" />
<TextView
android:id="@+id/title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"
style="@style/TextAppearance.AppCompat.Widget.ActionBar.Title" />
</LinearLayout>
</android.support.v7.widget.Toolbar>
strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">A Random App</string>
<string name="hello_world">This is a Test.</string>
<string name="action_settings">Settings[BETA]</string>
<string name="actionbar_title">A Random App.</string>
<string name="banner_ad_unit_id">ca-app-pub-xxxxxxxxxxxxxxx/xxxxxxxxxxxxx</string>
<string name="subscribe"><a href="https://www.google.com">Google</a></string>
<string name="apps"><a href="https://www.google.pl/">Google</a></string>
<string name="extra"><a href="https://www.google.pl/">Google</a></string>
build.gradle
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.1"
defaultConfig {
applicationId "com.xrevolt.mmxstructures"
minSdkVersion 14
targetSdkVersion 23
versionCode 2
versionName "1.2.0"
}
buildTypes {
release {
apply plugin: 'announce'
/*
runProguard false
*/
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:21.0.+'
compile 'com.android.support:cardview-v7:21+'
compile 'com.flaviofaria:kenburnsview:1.0.5'
compile 'com.jpardogo.materialtabstrip:library:1.0.6'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.google.android.gms:play-services-ads:8.4.0'
}
Nach Fehlerprotokoll .. –
Mein JDK ist noch nicht installiert. Ich werde es veröffentlichen, sobald ich das repariere. –