2014-01-09 29 views
2

我試圖按照書中的教程進行操作。我在一本500頁的書中約有200頁,一切都運行良好,直到有一天,我收到一條錯誤消息,說「不幸的是」該應用程序「已停止」。我不想重新開始,並嘗試在這個論壇上的解決方案,看看我是否可以得到一個答案,如去Windows - 首選項 - Android的 - DDMS - 滴答ADHOST,重新啓動Eclipse和關閉ADT等,但沒有似乎解決了這個問題。 從我收集的信息來看,這個錯誤對於每個應用程序都是獨一無二的,我應該在論壇上發佈來自logcat的日誌,以便其他人可以比我更聰明地分析它。應用程序崩潰:IllegalStateException:在RelativeLayout中不存在循環依賴關係

以下是從logcat的結果:

01-09 18:59:22.559: I/ActivityManager(316): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.androiddevbook.onyourbike.chapter3/.MainActivity} from pid 1896 
01-09 18:59:22.591: W/WindowManager(316): Failure taking screenshot for (246x410) to layer 21005 
01-09 18:59:22.639: D/AndroidRuntime(1896): Shutting down VM 
01-09 18:59:22.669: D/dalvikvm(1896): GC_CONCURRENT freed 96K, 17% free 500K/600K, paused 1ms+4ms, total 22ms 
01-09 18:59:22.669: D/jdwp(1896): Got wake-up signal, bailing out of select 
01-09 18:59:22.669: D/dalvikvm(1896): Debugger has detached; object registry had 1 entries 
01-09 18:59:22.709: D/dalvikvm(1906): Not late-enabling CheckJNI (already on) 
01-09 18:59:22.709: I/ActivityManager(316): Start proc com.androiddevbook.onyourbike.chapter3 for activity com.androiddevbook.onyourbike.chapter3/.MainActivity: pid=1906 uid=10051 gids={50051, 1028} 
01-09 18:59:23.039: E/SurfaceFlinger(37): ro.sf.lcd_density must be defined as a build property 
01-09 18:59:23.349: E/Trace(1906): error opening trace file: No such file or directory (2) 
01-09 18:59:23.779: I/Choreographer(687): Skipped 100 frames! The application may be doing too much work on its main thread. 
01-09 18:59:24.280: D/dalvikvm(1906): GC_FOR_ALLOC freed 67K, 8% free 2500K/2692K, paused 40ms, total 42ms 
01-09 18:59:24.299: I/dalvikvm-heap(1906): Grow heap (frag case) to 4.024MB for 1536016-byte allocation 
01-09 18:59:24.429: D/dalvikvm(1906): GC_FOR_ALLOC freed 2K, 5% free 3998K/4196K, paused 126ms, total 126ms 
01-09 18:59:24.529: D/dalvikvm(1906): GC_CONCURRENT freed <1K, 5% free 3998K/4196K, paused 5ms+25ms, total 91ms 
01-09 18:59:24.629: D/dalvikvm(1906): GC_FOR_ALLOC freed <1K, 5% free 3997K/4196K, paused 33ms, total 33ms 
01-09 18:59:24.660: I/dalvikvm-heap(1906): Grow heap (frag case) to 7.318MB for 3456016-byte allocation 
01-09 18:59:24.739: D/dalvikvm(1906): GC_CONCURRENT freed 0K, 3% free 7372K/7572K, paused 21ms+5ms, total 78ms 
01-09 18:59:24.970: D/AndroidRuntime(1906): Shutting down VM 
01-09 18:59:24.970: W/dalvikvm(1906): threadid=1: thread exiting with uncaught exception (group=0x40a71930) 
**01-09 18:59:24.989: E/AndroidRuntime(1906): FATAL EXCEPTION: main** 
01-09 18:59:24.989: E/AndroidRuntime(1906): java.lang.IllegalStateException: Circular dependencies cannot exist in RelativeLayout 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.widget.RelativeLayout$DependencyGraph.getSortedViews(RelativeLayout.java:1531) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.widget.RelativeLayout.sortChildren(RelativeLayout.java:343) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:363) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.view.View.measure(View.java:15518) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.view.View.measure(View.java:15518) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:847) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.view.View.measure(View.java:15518) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4825) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2176) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.view.View.measure(View.java:15518) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1874) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1089) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1265) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.view.Choreographer.doCallbacks(Choreographer.java:562) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.view.Choreographer.doFrame(Choreographer.java:532) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.os.Handler.handleCallback(Handler.java:725) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.os.Handler.dispatchMessage(Handler.java:92) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.os.Looper.loop(Looper.java:137) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at android.app.ActivityThread.main(ActivityThread.java:5041) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at java.lang.reflect.Method.invoke(Method.java:511) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) 
01-09 18:59:24.989: E/AndroidRuntime(1906):  at dalvik.system.NativeStart.main(Native Method) 
01-09 18:59:24.999: W/ActivityManager(316): Force finishing activity com.androiddevbook.onyourbike.chapter3/.MainActivity 
01-09 18:59:25.009: W/WindowManager(316): Failure taking screenshot for (246x410) to layer 21010 
01-09 18:59:25.249: E/SurfaceFlinger(37): ro.sf.lcd_density must be defined as a build property 
01-09 18:59:25.540: W/ActivityManager(316): Activity pause timeout for ActivityRecord{40d01bd0 u0 com.androiddevbook.onyourbike.chapter3/.MainActivity} 
01-09 18:59:25.839: E/SurfaceFlinger(37): ro.sf.lcd_density must be defined as a build property 
01-09 18:59:26.089: I/Choreographer(687): Skipped 65 frames! The application may be doing too much work on its main thread. 

誰能幫助我嗎?

這裏是我的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.androiddevbook.onyourbike.chapter3" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="17" 
     android:targetSdkVersion="19" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/helloworldicon" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
      <activity 
      android:name="com.androiddevbook.onyourbike.chapter3.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 

     </activity> 

      <activity 
       android:name="com.androiddevbook.onyourbike.chapter3.NewPlanet" android:label="@string/activity_title_new_planet"/> 

      <activity 
       android:name="com.androiddevbook.onyourbike.chapter3.ConfigPlanet" android:label="@string/activity_title_configure_planet"/> 

       <activity 
       android:name="com.androiddevbook.onyourbike.chapter3.TravelPlanet" android:label="@string/activity_title_travel_planet"/> 

        <activity 
       android:name="com.androiddevbook.onyourbike.chapter3.AttackPlanet" android:label="@string/activity_title_attack_planet"/> 

    </application> 

</manifest> 

我想通了,它涉及XML。爲此,循環依賴錯誤出現的XML數據如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="@drawable/galaxy" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="5dip" 
     android:text="@string/planet_name_label" android:textColor="#FFDDAA" /> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_below="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/planet_mass_label" android:textColor="#FFDDAA"/> 

     <TextView 
     android:id="@+id/dataView2" 
     android:layout_toRightOf="@+id/textView2" 
     android:layout_alignStart="@+id/dataView1" 
     android:layout_below="@+id/dataView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/planet_mass_label" android:textColor="#FFFF99" /> 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_below="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/planet_gravity_label" android:textColor="#FFDDAA"/> 

     <TextView 
     android:id="@+id/dataView3" 
     android:layout_toRightOf="@+id/textView3" 
     android:layout_alignStart="@+id/dataView2" 
     android:layout_below="@+id/dataView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/planet_gravity_label" android:textColor="#FFFF99"/> 

     <TextView 
     android:id="@+id/textView4" 
     android:layout_below="@+id/textView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/planet_colonies_label" android:textColor="#FFDDAA"/> 

     <TextView 
     android:id="@+id/dataView4" 
     android:layout_toRightOf="@+id/textView4" 
     android:layout_alignStart="@+id/dataView3" 
     android:layout_below="@+id/dataView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/planet_colonies_label" android:textColor="#FFFF99"/> 

     <TextView 
     android:id="@+id/textView5" 
     android:layout_below="@+id/textView4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/planet_population_label" android:textColor="#FFDDAA"/> 

     <TextView 
     android:id="@+id/dataView5" 
     android:layout_toRightOf="@+id/textView5" 
     android:layout_alignStart="@+id/dataView4" 
     android:layout_below="@+id/dataView4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/planet_population_label" android:textColor="#FFFF99"/> 

     <TextView 
     android:id="@+id/textView6" 
     android:layout_below="@+id/textView5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/planet_military_label" android:textColor="#FFDDAA"/> 

     <TextView 
     android:id="@+id/dataView6" 
     android:layout_toRightOf="@+id/textView6" 
     android:layout_alignStart="@+id/dataView5" 
     android:layout_below="@+id/dataView5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/planet_military_label" android:textColor="#FFFF99"/> 

     <TextView 
     android:id="@+id/textView7" 
     android:layout_below="@+id/textView6" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/planet_bases_label" android:textColor="#FFDDAA"/> 

     <TextView 
     android:id="@+id/dataView7" 
     android:layout_toRightOf="@+id/textView7" 
     android:layout_alignStart="@+id/dataView6" 
     android:layout_below="@+id/dataView6" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/planet_bases_label" android:textColor="#FFFF99"/> 

      <TextView 
     android:id="@+id/textView8" 
     android:layout_below="@+id/textView7" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/planet_forcefield_label" android:textColor="#FFDDAA"/> 

     <TextView 
     android:id="@+id/dataView8" 
     android:layout_toRightOf="@+id/textView8" 
     android:layout_alignStart="@+id/dataView7" 
     android:layout_below="@+id/dataView7" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/planet_forcefield_label" android:textColor="#FFFF99"/> 

<ImageView 
    android:id="@+id/imageEarth" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/textView8" 

    android:contentDescription="@string/content_desc_earth" 
    android:padding="30dp" 
    android:src="@drawable/earth" /> 

<TextView 
    android:id="@+id/dataView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/textView8" 
    android:layout_alignLeft="@+id/dataView7" 
    android:text="@string/planet_name_label" 
    android:textColor="#FFFF99" /> 

</RelativeLayout> 
+1

'java.lang.IllegalStateException:循環依賴不能存在於RelativeLayout'中 - 請發佈您的佈局XML請。 – laalto

+3

查找兩個或多個相互依賴的佈局視圖。你不能說「一個是對的b」和「b是留給一個」。這是循環依賴。 –

+0

上面顯示的佈局。 – Simon

回答

1

我假設你試圖有兩列,文本|數據。爲了模式的原因,我將dataView1代碼移動到textView1下面,並將其放置到RightOf = textView1並取出「alignLeft」和「above」。

<TextView 
android:id="@+id/dataView1" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_toRightOf="@+id/textView1" 
android:text="string/planet_name_label" 
android:textColor="#FFFF99" /> 
0

我試圖找到其中的循環依賴存在....我STOPP因爲你的代碼讓我頭痛。也許你可以從TextView1,TextView2,TextView3等和DataView1,Dataview2,Dataview3等改變你的XML ID名稱到一些有意義的東西?

+0

LOL。多數民衆贊成在這本書是如何完成的:)我發現了循環例外。它在dataView1的最後一個文本框中。它不正確地引用textView8和dataView7導致循環依賴。 – Simon

相關問題