2011-12-19 50 views
9

Tôi có hai ứng dụng và đang chuyển một ứng dụng thành Thư viện để tôi có thể khởi chạy ứng dụng từ một ứng dụng khác. Trong thư viện của tôi, tôi có một hình ảnh facebook và một hình ảnh twitter gây ra NoSuchFieldError. Tôi có thư viện được xác định trong tệp kê khai của mình.Android, NoSuchFieldError khi khởi chạy hoạt động thứ hai

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

Tôi bắt đầu hoạt động này bằng

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

Nó dường như tìm thấy hoạt động nhưng khi nó ra mắt tôi nhận được lỗi sau đây trong 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) 

Tôi phải chỉ ra rằng nếu tôi khởi chạy Thư viện của mình dưới dạng ứng dụng, mọi thứ sẽ hoạt động và tải chính xác mà không có bất kỳ lỗi nào.

Cảm ơn sự giúp đỡ của bạn!

EDIT

tôi thấy vấn đề của tôi. Trong thư viện của tôi, tôi đã sử dụng

setContentView(R.layout.main); 

Đổi tên bố cục của tôi đã giải quyết được sự cố của tôi.

Cảm ơn

+0

1 cho đặt ra câu hỏi chính xác cùng tôi sắp sửa hỏi. –

Trả lời

8

startActivity với new Intent(Context, class) chỉ áp dụng nếu hoạt động của bạn nằm trong cùng một ứng dụng. Nếu bạn muốn bắt đầu một hoạt động từ bên ngoài ứng dụng, hãy sử dụng tên gói đầy đủ của nó. ví dụ,

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

Cũng lưu ý rằng bạn đã đánh vần Activty mà không có một 'i' (chỉ chỉ ra. Có thể bạn cố tình làm điều đó?)

+0

+1 cho thông tin vô giá này, hiển thị đúng nơi và đúng thời điểm. Tôi chắc chắn điều này đang ẩn ở đâu đó trong cuốn sách 718 trang của tôi, nhưng cuốn sách của bạn dễ tìm hơn nhiều. Cảm ơn! –

Các vấn đề liên quan