2011-12-19 15 views
9

2つのアプリケーションがあり、ライブラリを1つに変えて別のアプリケーションから起動できます。私の図書館では、Facebookの画像とNoSuchFieldErrorの原因となるTwitter画像があります。私は私のマニフェストに定義されたライブラリを持っています。Android、Noアクティビティ起動時のNoSuchFieldError

<activity android:name="com.funayman.listactivity.ApplicationListActivty" /> 

私は

startActivity(new Intent(this, ApplicationListActivty.class)); 

活動を見つけるように見える使用してこの活動を始めていますが、それは私がLogCatに次のエラーを取得する起動したとき:

E/AndroidRuntime( 731): java.lang.NoSuchFieldError: com.funayman.listactivity.R$id.img_fb 
E/AndroidRuntime( 731): at com.funayman.listactivity.ApplicationListActivty.onCreate(ApplicationListActivtyActivity.java:58) 
E/AndroidRuntime( 731): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
E/AndroidRuntime( 731): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459) 
E/AndroidRuntime( 731): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
E/AndroidRuntime( 731): at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
E/AndroidRuntime( 731): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
E/AndroidRuntime( 731): at android.os.Handler.dispatchMessage(Handler.java:99) 
E/AndroidRuntime( 731): at android.os.Looper.loop(Looper.java:123) 
E/AndroidRuntime( 731): at android.app.ActivityThread.main(ActivityThread.java:4363) 
E/AndroidRuntime( 731): at java.lang.reflect.Method.invokeNative(Native Method) 
E/AndroidRuntime( 731): at java.lang.reflect.Method.invoke(Method.java:521) 
E/AndroidRuntime( 731): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
E/AndroidRuntime( 731): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
E/AndroidRuntime( 731): at dalvik.system.NativeStart.main(Native Method) 

は私がいることを指摘しなければなりませんライブラリをアプリケーションとして起動すると、エラーは発生せずすべて正常に動作し、ロードされます。

ありがとうございました!

EDIT

は、私は私の問題を発見しました。私が使っていた図書館で

setContentView(R.layout.main); 

レイアウトの名前を変更して私の問題を解決しました。 new Intent(Context, class)

おかげ

+0

+1をActivtyに綴られていることに注意してください聞いてください。 –

答えて

8

startActivityあなたの活動は、同じアプリケーション内にある場合にのみ適用されます。アプリケーションの外部からアクティビティを開始する場合は、完全なパッケージ名を使用します。 は例えば、

Intent i = new Intent("com.test.application"); 
startActivity(i); 

はまた、私は約だったあなたはまったく同じ質問をするために(ちょうど指摘。多分あなたは故意にそれをした?)「I」なし

+0

+1この貴重な情報は、正しい場所と適切な時間に表示されます。私はこれが718ページの本のどこかに隠れていると確信していますが、あなたの方がはるかに見つけやすくなりました。ありがとう! –

関連する問題