2013-12-19 31 views
1

你好誰能幫助我嗎?我已經創建了一個佈局,每個圖像下有四個圖像按鈕和一個文本視圖,圖像按鈕用於res/drawables圖像並添加到android:src =「eg」,並且它工作完美,直到..我最近學會了如何創建逐幀動畫(我還是比較新的),所以我添加了一個動畫到圖像按鈕的背景(刪除android:src =「eg」),並使用touchevent從android開發者教程,但後來改變了所以圖像開始運行,並且它運行得非常漂亮,所以我想讓其他圖像按鈕效仿。我使用了一個.xml動畫列表,並且每次都添加了一個動畫,我添加了第二個動畫,它也運行正常,但添加第三個動畫給了我一個關於流動錯誤的堆棧,我在這裏讀到它可能是因爲嵌套viewgroups,但更改xml顯示動畫imagebuttons什麼都沒有完成,我也嘗試了所有其他代碼,積極縮減我的圖片無濟於事,並試圖解釋我的logcat導致我相信它的Java問題,所以即時列出我的logcat,xml佈局,drawable xml(animationlist)和java文件,謝謝你的幫助。添加幀動畫android堆棧溢出錯誤

logcat的

00:41:07.863 13090-13090/com.martinsapp.socialstories E/AndroidRuntime﹕ 
FATAL EXCEPTION: main 
java.lang.RuntimeException: Unable to start activity 
ComponentInfo{com.martinsapp.socialstories/com.martinsapp 

.socialstories.animalsActivity}: android.view.InflateException: Binary XML file line 

#29: Error inflating class <unknown> 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2224) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2274) 
     at android.app.ActivityThread.access$600(ActivityThread.java:150) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1276) 
     at android.os.Handler.dispatchMessage(Handler.java:99) 
     at android.os.Looper.loop(Looper.java:213) 
     at android.app.ActivityThread.main(ActivityThread.java:5153) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:511) 
     at 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:564) 
     at dalvik.system.NativeStart.main(Native Method) 
    Caused by: android.view.InflateException: Binary XML file line #29: 
    Error inflating class <unknown> 
     at android.view.LayoutInflater.createView(LayoutInflater.java:613) 
     at 
    com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView 
    (PhoneLayoutInflater.java:56) 
     at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:352) 
     at 
     com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:277) 
     at android.app.Activity.setContentView(Activity.java:1881) 
     at 
     com.martinsapp.socialstories.animalsActivity.onCreate(animalsActivity.java:28) 
     at android.app.Activity.performCreate(Activity.java:5104) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2188) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2274)at  
android.app.ActivityThread.access$600 
(ActivityThread.java:150) 
at android.app.ActivityThread$H.handleMessage 

    (ActivityThread.java:1276) at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:213) 
at android.app.ActivityThread.main(ActivityThread.java:5153) 
java.lang.reflect.Method.invokeNative(Native Method) 
java.lang.reflect.Method.invoke(Method.java:511) 
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:564) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.reflect.InvocationTargetException 
at java.lang.reflect.Constructor.constructNative(Native Method) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
at android.view.LayoutInflater.createView(LayoutInflater.java:587) 
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView 
(PhoneLayoutInflater.java:56) 

at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660) 
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746) 
at android.view.LayoutInflater.rInflate(LayoutInflater.java:749) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:489) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:396) 
at android.view.LayoutInflater.inflate(LayoutInflater.java:352)at 
com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:277) 
at android.app.Activity.setContentView(Activity.java:1881) 
at com.martinsapp.socialstories.animalsActivity.onCreate(animalsActivity.java:28) 
at android.app.Activity.performCreate(Activity.java:5104) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2188) 
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2274) 
at android.app.ActivityThread.access$600(ActivityThread.java:150) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1276) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:213) 
at android.app.ActivityThread.main(ActivityThread.java:5153) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:511) 
atcom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:564) 
at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.StackOverflowError 
     at android.graphics.drawable.AnimationDrawable$AnimationState.<init> 
    (AnimationDrawable.java:319) 
     at android.graphics.drawable.AnimationDrawable.<init> 
    (AnimationDrawable.java:357) 
     at android.graphics.drawable.AnimationDrawable.<init> 
    (AnimationDrawable.java:87) 
     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:910) 
     at android.graphics.drawable.Drawable.createFromXml(Drawable.java:864) 
     at android.content.res.Resources.loadDrawable(Resources.java:1977) 
     at android.content.res.Resources.getDrawable(Resources.java:666) 
     at android.graphics.drawable.AnimationDrawable.inflate 
(AnimationDrawable.java:282) 
     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:942) 
    at android.graphics.drawable.Drawable.createFromXml(Drawable.java:864) 
     at android.content.res.Resources.loadDrawable(Resources.java:1977) 
     at android.content.res.Resources.getDrawable(Resources.java:666) 
     at android.graphics.drawable.AnimationDrawable.inflate 
(AnimationDrawable.java:282) 
     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:942) 
     at android.graphics.drawable.Drawable.createFromXml(Drawable.java:864) 
     at android.content.res.Resources.loadDrawable(Resources.java:1977) 
     at android.content.res.Resources.getDrawable(Resources.java:666) 
     at android.graphics.drawable.AnimationDrawable.inflate 
(AnimationDrawable.java:282) 
     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:942) 
     at android.graphics.drawable.Drawable.createFromXml(Drawable.java:864) 
     at android.cont 

XML佈局

<LinearLayout 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/linear_layout"> 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:id="@+id/linear_layout2"> 


    <ImageButton 
     android:id="@+id/cat_button" 
     android:layout_weight="1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:contentDescription="@string/cat_button" 
     android:src="@drawable/cat" 
     android:scaleType="centerCrop" 
     android:cropToPadding="true" 
     android:onClick="cat_image"/> 



    <ImageButton 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:contentDescription="@string/dog_button" 
     android:id="@+id/ImageView_dog" 
     android:background="@drawable/movingdogmoves" 
     android:scaleType="centerCrop" 
     android:onClick="dog_image" 
     android:cropToPadding="true" /> 


</LinearLayout> 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/linear_layout4"> 

    <TextView 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:id="@+id/cat_text" 
     android:text="@string/activity1_cat" 
     android:textSize="23sp" 
     android:textStyle="bold|italic" 
     android:layout_weight="1" 
     android:gravity="center" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/activity3_dog" 
     android:textSize="23sp" 
     android:id="@+id/textView" 
     android:layout_gravity="right|center_vertical" 
     android:textStyle="bold|italic" 
     android:layout_weight="1" 
     android:gravity="center" /> 

</LinearLayout> 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:layout_weight="1" 
    android:id="@+id/linear_layout3"> 


    <ImageButton 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:contentDescription="@string/duck_button" 
     android:layout_weight="1" 
     android:background="@drawable/movingduck" 
     android:id="@+id/ImageView" 
     android:scaleType="centerCrop" 
     android:cropToPadding="true" 
     android:onClick="duck_image"/> 

    <ImageButton 
     android:contentDescription="@string/cow_button" 
     android:layout_height="match_parent" 
     android:layout_width="match_parent" 
     android:layout_weight="1" 
     android:id="@+id/ImageView_cow" 
     android:scaleType="centerCrop" 
     android:cropToPadding="true" 
     android:onClick="cow_image"/> 


</LinearLayout> 

<LinearLayout 
    android:orientation="horizontal" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/linear_layout5"> 

    <TextView 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:id="@+id/duck_text" 
     android:text="@string/activity2_duck" 
     android:textSize="23sp" 
     android:textStyle="bold|italic" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:paddingBottom="5dp" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/activity4_cow" 
     android:textSize="23sp" 
     android:id="@+id/cow_text" 
     android:layout_gravity="right|center_vertical" 
     android:textStyle="bold|italic" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:paddingBottom="5dp" /> 



</LinearLayout> 

</LinearLayout> 

繪製動畫XML(我有三個所有這幾乎是相同的房源幾乎相同的圖像)

<animation-list 
android:id="@+id/movingdog" 
xmlns:android="http://schemas.android.com/apk/res/android"> 
<item android:drawable="@drawable/movingdogmoves" android:duration="150"/> 
<item android:drawable="@drawable/movingdog1" android:duration="150"/> 
<item android:drawable="@drawable/movingdog2" android:duration="150"/> 
<item android:drawable="@drawable/movingdog3" android:duration="150"/> 
<item android:drawable="@drawable/movingdog4" android:duration="150"/> 
<item android:drawable="@drawable/movingdog5" android:duration="150"/> 
<item android:drawable="@drawable/movingdog6" android:duration="150"/> 
<item android:drawable="@drawable/movingdog7" android:duration="150"/> 
<item android:drawable="@drawable/movingdog8" android:duration="150"/> 


</animation-list> 

的Java文件

package com.martinsapp.socialstories; 

import android.content.Intent; 
import android.os.Bundle; 
import android.app.Activity; 
import android.view.View; 
import android.widget.Button; 
import android.widget.ImageButton; 
import android.widget.ImageView; 

import android.graphics.drawable.AnimationDrawable; 


public class animalsActivity extends Activity { 
ImageButton imageButton; 
ImageButton imageButton2; 
ImageButton imageButton3; 
ImageButton imageButton4; 
Button button; 

AnimationDrawable movingDuck; 
AnimationDrawable movingCow; 
AnimationDrawable movingDog; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_animals); 

    imageButton=(ImageButton)findViewById(R.id.cat_button); 
    imageButton2=(ImageButton)findViewById(R.id.dog_button); 
    imageButton3=(ImageButton)findViewById(R.id.imageView); 
    imageButton4=(ImageButton)findViewById(R.id.cow_button); 
    button=(Button)findViewById(R.id.button_next); 
    ImageView movingduck = (ImageView) findViewById(R.id.ImageView); 
    movingduck.setBackgroundResource(R.drawable.movingduck); 
    movingDuck = (AnimationDrawable) movingduck.getBackground(); 
    movingDuck.start(); 
    ImageView movingcow = (ImageView) findViewById(R.id.ImageView_cow); 
    movingcow.setBackgroundResource(R.drawable.movingcow); 
    movingCow = (AnimationDrawable) movingcow.getBackground(); 
    movingCow.start(); 
    ImageView movingdog = (ImageView) findViewById(R.id.ImageView_dog); 
    movingcow.setBackgroundResource(R.drawable.movingdogmoves); 
    movingDog = (AnimationDrawable) movingdog.getBackground(); 
    movingDog.start(); 
} 

public void cat_image(View view){ 
    Intent intent = new Intent(this, CatActivity.class); 
    startActivity(intent); 
} 
public void dog_image(View view){ 
    Intent intent = new Intent(this, DogActivity.class); 
    startActivity(intent); 

} 
public void cow_image(View view){ 
    Intent intent = new Intent(this, CowActivity.class); 
    startActivity(intent); 
} 
public void duck_image(View view){ 
    Intent intent = new Intent(this, duckActivity.class); 
    startActivity(intent); 
} 




} 

回答

2

我能想到的唯一的事情就是您在這裏遞歸引用相同的可繪製XML:<item android:drawable="@drawable/movingdogmoves" android:duration="150"/>

這是裏面的movingdogmoves.xml?這將導致堆棧溢出

+0

天才哈哈對不起,安卓工作室做了這個重構XML標題時,謝謝sooooo多 – martinseal1987