2011-11-17 46 views
29

Tôi đang thử ứng dụng từ this blog. Trong khi mở rộng FragmentActivity, tôi nhận được lỗi sau:FragmentActivity không thể được giải quyết thành loại

`FragmentActivity` was not able to resolve. 

Tôi có thiếu thư viện hoặc bất kỳ thứ gì khác không?

Mã của tôi:

public class Testing_newActivity extends FragmentActivity { // here the FragmentActivity getting error package not found for import 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     //setContentView(R.layout.main); 
     if (getResources().getConfiguration().orientation 
       == Configuration.ORIENTATION_LANDSCAPE) { 
      // If the screen is now in landscape mode, we can show the 
      // dialog in-line so we don't need this activity. 
      finish(); 
      return; 
     } 

     if (savedInstanceState == null) { 
      // During initial setup, plug in the details fragment. 
      DetailsFragment details = new DetailsFragment(); 
      details.setArguments(getIntent().getExtras()); 

      getSupportFragmentManager().beginTransaction().add(
        android.R.id.content, details).commit(); 
     }  
    } 
} 

android file manifest

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

    <uses-sdk android:minSdkVersion="11" /> 

    <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > 
     <activity android:label="@string/app_name" android:name=".Testing_newActivity" > 
      <intent-filter > 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 
+0

Đi qua hàng nhập của bạn và đảm bảo tất cả những gì cần thiết đều có. (Nếu bạn đăng một số mã/lỗi đăng nhập/một cái gì đó nó sẽ được dễ dàng hơn để giúp đỡ). – kaspermoerch

Trả lời

45

Sau khi chờ đợi một thời gian dài cho câu trả lời này, tôi đã sắp xếp mọi thứ và tôi nghĩ rằng nhiều người khác sẽ cần một giải pháp đơn giản cho câu hỏi này.

Cảnh báo: Giải pháp này dành cho người dùng nhật thực sử dụng phiên bản Indigo hoặc phiên bản thấp hơn. Vẫn đang tìm kiếm giải pháp người dùng sử dụng IDE khác cho android.

Khi mở rộng FragmentActivity cho ứng dụng của bạn với phiên bản 2.2 hoặc thấp hơn, bạn có thể tải về từ android.supportv4.jar here hoặc bạn có thể có được điều này từ bạn thư mục android-sdk ..\android-sdk\extras\android\support\v4 và đưa vào dự án của bạn.

Nếu không có thư mục libs trong dự án của bạn, hãy tạo thư mục libs và dán tệp android.supportv4.jar vào thư mục này.

Từ không gian làm việc dự án eclipse: Chọn project/application mà bạn muốn sử dụng. Nhấp chuột phải vào Project và chọn tùy chọn Properties. Trong chọn Java build path này và chọn tab Libraries

enter image description here

Bây giờ hãy nhấp vào Add Jar. Nó sẽ hiển thị danh sách các dự án hiện tại với dự án hiện tại đã chọn.

Mở rộng mục này và chuyển đến thư mục libs và chọn tệp android.supportv4.jar rồi nhấp OK. Nó sẽ hiển thị trong hộp danh sách ngay bây giờ. Remember add the jar file as relative path path not as absolute path, so whenever if you change the directory of your project or open in another machine then will detect automatically for the project directory. Bây giờ hãy nhấp vào Ok để đóng hộp thoại Thuộc tính.

Bạn có thể nhập android.support.v4.app.FragmentActivity; bằng cách đặt chuột lên FragmentActivity hoặc nhấn ctrl + shift + o để nhập tệp bị thiếu.

Hy vọng bạn có thể tham gia lớp FragmentActivity.

Nếu bạn đang sử dụng nhật thực juno, thì không cần phải lo lắng về việc tải xuống tệp jar hỗ trợ. Nó sẽ tự động được đưa vào thư mục libs và tự động được thêm vào đường dẫn dự án của bạn. Nếu trong trường hợp không sau đó đi qua các tùy chọn Properties và thêm nó.

Một điều nữa Nếu bạn cần hỗ trợ ứng dụng của bạn cho phiên bản thấp hơn sau đó xây dựng với các phiên bản cao hơn và thêm dòng này vào tệp AndroidManifest.xml của bạn

<uses-sdk 
    android:minSdkVersion="3" 
    android:targetSdkVersion="15" /> 

bây giờ điều này sẽ hỗ trợ cho 1,5-4,0. 1 thiết bị phiên bản.

+0

Điều này đã giúp tôi! Tuy nhiên tôi đã nhấn ** Thêm các JAR Ngoài ... ** – ymerdrengene

1

FragmentActivity là một phần của thư viện tương thích và không điều hành Android 3.0 SDK. Bạn không cần sử dụng nó trừ khi bạn muốn tương thích ngược.

Không chắc tại sao điều này được đề cập ở đây có thể là một lớp cụ thể của dự án.

Hãy thử nhìn vào HCGallery mẫu xuất xưởng với sdk

+0

vì vậy thư viện nào dành cho điều này? – Pratik

5

bạn phải thêm bên ngoài Jar hỗ trợ android vào đường dẫn lớp học của bạn ví dụ trong trường hợp của tôi, tôi đã thêm android-support-v4.jar nằm ở thư mục {android_home}\extras\android\support\v4. Tôi đang sử dụng Windows XP và trong trường hợp của tôi, nó nằm ở số C:\Program Files\Android\android-sdk\extras\android\support\v4

Hy vọng điều này sẽ giúp bất kỳ ai đang tìm kiếm câu trả lời.

38

Nếu bạn đang sử dụng nhật thực và cửa sổ, đây là cách bạn có thể loại bỏ lỗi này.

Right click on your project folder->Build path-> Configure build path-> 
Add External Jars -> select "android-support-v4.jar" file (It'll be located in Android "android-sdk-windows\extras\android\support") 
then click OK. 
+0

thì việc cần làm cho WatchActivity không thể được giải quyết thành loại – Prasad

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