2015-12-18 22 views
7

Tôi đang sử dụng fragmentHoạt động cho bản đồ. Trong lớp Java nhận lỗi trên setContentView. Mapscreen.java của tôi giống như: Nó hoạt động tốt trên một số thiết bị chỉ hiển thị sự cố trên marshmallow. Hoặc có bất kỳ lý do nào khác không?Sự cố trong Hoạt động Phân đoạn Marshmallow cho Bản đồ

public class MapScreen extends FragmentActivity implements LocationListener, 
GoogleApiClient.ConnectionCallbacks, 
GoogleApiClient.OnConnectionFailedListener { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.map_screen); 
    .... 

    SupportMapFragment fm = (SupportMapFragment) getSupportFragmentManager() 
      .findFragmentById(R.id.map); 
    googleMap = fm.getMap(); 
} 

    and my xml has fragment using SupportMapFragment as well. map_screen.xml is like : 


    <?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" > 

     <fragment 
      android:id="@+id/map" 
      android:name="com.google.android.gms.maps.SupportMapFragment" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" /> 

     <ImageView 
      android:id="@+id/startActivityButton" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" 
      android:layout_centerHorizontal="true" 
      android:layout_marginLeft="50dp" 
      android:layout_marginRight="50dp" 
      android:layout_marginBottom="44dp" 
      android:background="@drawable/end_meetup_btn" 
     /> 

    </RelativeLayout> 

Tôi không thể tìm thấy cùng một câu hỏi Bắt vụ tai nạn ở đây trong Marshmallow: "dòng tập tin XML Binary # 7: Lỗi khi gia tăng fragment lớp" Xin đề nghị! Cố gắng tìm "Gây ra bởi: java.lang.NullPointerException: Cố gắng gọi phương thức ảo 'boolean java.io.File.mkdir()' trên tham chiếu đối tượng null".

12-18 13:40:14.425: E/AndroidRuntime(8026): FATAL EXCEPTION: main 
    12-18 13:40:14.425: E/AndroidRuntime(8026): Process: com.kindlebit.urban_exchange, PID: 8026 
    12-18 13:40:14.425: E/AndroidRuntime(8026): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.kindlebit.urban_exchange/com.kindlebit.urban_exchange.MapScreen}: android.view.InflateException: Binary XML file line #7: Binary XML file line #7: Error inflating class fragment 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.app.ActivityThread.-wrap11(ActivityThread.java) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.os.Handler.dispatchMessage(Handler.java:102) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.os.Looper.loop(Looper.java:148) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.app.ActivityThread.main(ActivityThread.java:5417) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at java.lang.reflect.Method.invoke(Native Method) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
    12-18 13:40:14.425: E/AndroidRuntime(8026): Caused by: android.view.InflateException: Binary XML file line #7: Binary XML file line #7: Error inflating class fragment 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.view.LayoutInflater.inflate(LayoutInflater.java:539) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at com.android.internal.policy.PhoneWindow.setContentView(PhoneWindow.java:393) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.app.Activity.setContentView(Activity.java:2166) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at com.kindlebit.urban_exchange.MapScreen.onCreate(MapScreen.java:109) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.app.Activity.performCreate(Activity.java:6237) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  ... 9 more 
    12-18 13:40:14.425: E/AndroidRuntime(8026): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class fragment 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:782) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  ... 17 more 
    12-18 13:40:14.425: E/AndroidRuntime(8026): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.io.File.mkdir()' on a null object reference 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at com.google.maps.api.android.lib6.gmm6.m.ad.a(Unknown Source) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at com.google.maps.api.android.lib6.gmm6.c.h.a(Unknown Source) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at com.google.maps.api.android.lib6.gmm6.c.y.a(Unknown Source) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at com.google.maps.api.android.lib6.e.bd.a(Unknown Source) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at com.google.maps.api.android.lib6.e.ev.a(Unknown Source) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at com.google.maps.api.android.lib6.e.z.a(Unknown Source) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at com.google.maps.api.android.lib6.e.y.a(Unknown Source) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at com.google.android.gms.maps.internal.u.onTransact(SourceFile:107) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.os.Binder.transact(Binder.java:387) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at com.google.android.gms.maps.internal.IMapFragmentDelegate$zza$zza.onCreateView(Unknown Source) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at com.google.android.gms.maps.SupportMapFragment$zza.onCreateView(Unknown Source) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at com.google.android.gms.dynamic.zza$4.zzb(Unknown Source) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at com.google.android.gms.dynamic.zza.zza(Unknown Source) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at com.google.android.gms.dynamic.zza.onCreateView(Unknown Source) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at com.google.android.gms.maps.SupportMapFragment.onCreateView(Unknown Source) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:995) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1185) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.support.v4.app.FragmentManagerImpl.addFragment(FragmentManager.java:1287) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.support.v4.app.FragmentManagerImpl.onCreateView(FragmentManager.java:2243) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.support.v4.app.FragmentController.onCreateView(FragmentController.java:111) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.support.v4.app.FragmentActivity.dispatchFragmentsOnCreateView(FragmentActivity.java:278) 
    12-18 13:40:14.425: E/AndroidRuntime(8026):  at android.support.v4.app.BaseFragmentActivityHoneycomb.onCreateView(BaseFragmentActivityHoneycomb.java:31) 
+0

Những gì bạn đã chỉ định trong tệp kê khai của mình ?? – Pankaj

+0

+0

Trả lời

4

Sự cố xảy ra với "Micro-max Android one mobile" là 6.0 Marshmallow. thiết bị này không có đủ bộ nhớ trong hoặc bộ nhớ ngoài. Đã không có thẻ SD.

Sau khi làm theo câu trả lời của George từ này:

NullPointerException from Google maps

i cài đặt thẻ nhớ và bây giờ tai nạn không đến.

Vì vậy, tôi phát hiện sự cố đã được cập nhật Dịch vụ của Google Play yêu cầu không gian (ảnh Google được cập nhật) không đủ trong thiết bị của tôi.

và cũng là một trong những dòng Lỗi được hiển thị "Nguyên nhân: java.lang.NullPointerException: Cố gắng để gọi phương thức ảo 'boolean java.io.File.mkdir()' trên một tài liệu tham khảo đối tượng null"

tôi quyết định kiểm tra sau khi cài đặt thẻ SD. Và nó đã hoạt động

+0

Thật sai lầm! – Piyush

+0

có bạn đã đúng. Tôi gặp phải sự cố tương tự trên micromax AQ4509 –

+0

Tôi muốn gặp lỗi này và hiển thị thông báo cho người dùng cuối để chèn Thẻ SD. –

1
<!-- EXTERNAL_STORAGE permissions are optional for Android 6.0 onwards. --> 
    <uses-permission 
     android:name="android.permission.WRITE_EXTERNAL_STORAGE" 
     android:maxSdkVersion="22" /> 
    <uses-permission 
     android:name="android.permission.READ_EXTERNAL_STORAGE" 
     android:maxSdkVersion="22" /> 

Thêm mã này vào tệp kê khai của bạn. Có lẽ bản đồ cần sự cho phép sdcard cho một số bộ nhớ đệm thêm hoặc một cái gì đó.

0

Đây chỉ là cách giải quyết mà tôi đã làm. Nếu kiểm tra bên dưới không thành công, thay vì tải bản đồ, tôi tải một đoạn có lỗi.

/** Checks if external storage is available for read and write */ 
public boolean isExternalStorageWritable() { 
    String state = Environment.getExternalStorageState(); 
    return Environment.MEDIA_MOUNTED.equals(state); 
} 
0

Thêm quyền thẻ SD vào tệp kê khai của bạn.

<uses-permission 
    android:name="android.permission.WRITE_EXTERNAL_STORAGE" 
    /> 

    <uses-permission 
    android:name="android.permission.READ_EXTERNAL_STORAGE" 
    /> 
1

Sự cố đã được khắc phục trong phiên bản 9.0.83 của thư viện Google Play Services.

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