5

Tôi đang sử dụng một SupportMapFragment với thành công hoàn toàn. Tôi không gặp vấn đề gì cả.Android MapFragment Runtime Error - Không thể tìm thấy lớp 'maps.j.k'

Tuy nhiên tôi gặp lỗi trong thời gian chạy của ứng dụng. Tôi đang chạy trên một chiếc điện thoại Gingerbread và nó có GooglePlay mới nhất. Cũng lưu ý rằng tôi đang sử dụng SupportMapFragment và các lớp hỗ trợ khác để phục vụ cho Honeycomb trước.

Could not find class 'maps.j.k', referenced from method maps.y.ae.a` 

Lỗi xảy ra ngay khi tôi làm tăng lượt xem của tôi.

inflater.inflate(R.layout.fragment_map, container, false); 

file layout của tôi (fragment_map.xml):

<fragment 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:map="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/map" 
    android:name="com.google.android.gms.maps.SupportMapFragment" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" /> 

Stack trace (tại thời điểm lỗi):

Thread [<1> main] (Suspended) 
<VM does not provide monitor information> 
PhoneLayoutInflater(LayoutInflater).inflate(int, ViewGroup, boolean) line: 322 
MapsFragment.onCreateView(LayoutInflater, ViewGroup, Bundle) line: 90 
MapsFragment(Fragment).performCreateView(LayoutInflater, ViewGroup, Bundle) line: 1460 
FragmentManagerImpl.moveToState(Fragment, int, int, int, boolean) line: 911 
FragmentManagerImpl.moveToState(int, int, int, boolean) line: 1088 
BackStackRecord.run() line: 682 
FragmentManagerImpl.execPendingActions() line: 1444 
FragmentManagerImpl$1.run() line: 429 
FragmentActivity$1(Handler).handleCallback(Message) line: 587 
FragmentActivity$1(Handler).dispatchMessage(Message) line: 92 
Looper.loop() line: 150 
ActivityThread.main(String[]) line: 4277  
Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method] 
Method.invoke(Object, Object...) line: 507 
ZygoteInit$MethodAndArgsCaller.run() line: 839 
ZygoteInit.main(String[]) line: 597 
NativeStart.main(String[]) line: not available [native method] 

lớp Fragment của tôi (chứa SupportMapFragment)

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
    Bundle savedInstanceState) { 
    super.onCreateView(inflater, container, savedInstanceState); 

    View v = inflater.inflate(R.layout.fragment_maps, container, false); 
    return v; 
} 

Tôi có tất cả các quyền bắt buộc trong tệp kê khai của tôi như được mô tả here.

Nó không gây ra bất kỳ vấn đề nào, nhưng tôi rất tò mò về ý nghĩa của nó. Tôi đã không tìm thấy bất kỳ câu trả lời

+3

Proguard có thể là vấn đề - bạn có thể đã làm xáo trộn mã. –

+0

Hmm, nhưng trong project.properties của tôi, tôi có # proguard.config = ... đã nhận xét. Điều đó có nghĩa là nó bị vô hiệu hóa? –

+0

Nó có nghĩa là nó bị vô hiệu hóa, vấn đề thú vị. –

Trả lời

0
android:name="com.google.android.gms.maps.SupportMapFragment" 

thay thế với

class="com.google.android.gms.maps.SupportMapFragment" 
+0

Không may mắn tôi sợ. Tôi cũng nhận thấy rằng nó chỉ xảy ra lần đầu tiên bản đồ được tải. Nếu bạn giảm thiểu các ứng dụng hoặc thay đổi hoạt động vv sau đó quay trở lại bản đồ lỗi không được nâng lên. –

0

Nếu bạn đang trọng SupportMapfragment và tạo lớp mảnh của riêng bạn, tại sao bạn đang sử dụng android:name="com.google.android.gms.maps.SupportMapFragment" trong xml hoạt động của bạn.

Sử dụng com.your.package.your.supportmapfragment để thay thế. Bạn cần phải sử dụng class="com.google.android.gms.maps.SupportMapFragment"