Android使用百度地圖出現閃退及定位時顯示藍屏問題


 目錄

1.Android使用百度地圖出現閃退

2.Android使用百度地圖定位出現藍屏問題

 

 


1.Android使用百度地圖出現閃退

一般情況下出現閃退是在AndroidManifest.xml文件中未在application標簽中配置

<meta-data
    android:name="com.baidu.lbsapi.API_KEY"
    android:value="D9Lh8MrrLMUuXdWMU8tRLtDsta6PoaYN" />

但是,有些同學會發現,所有配置都是按照官網或者教程上的步驟來配置依舊會出現閃退問題。此時,不要盲目直接去網上搜索使用百度地圖出現閃退來求解,這樣不知道問題具體出現在哪,會讓你耗費大量時間,然而問題依舊得不到解決。

 

在此時,需要學會查看AndroidStudio給出的調試日志信息。打開Android Studio底部Android Monitor來查看具體報錯信息。例如:

 

 

此處本文樓主自己查看的報錯信息及解決方法如下:

報錯信息:

dlopen("/data/data/com.zhoupan.unlockinguser/files/libs/libBaiduMapSDK_base_v4_1_1.so", RTLD_LAZY) failed: dlopen failed: "/data/data/com.zhoupan.unlockinguser/files/libs/libBaiduMapSDK_base_v4_1_1.so" is 32-bit instead of 64-bit
11-05 14:02:48.554 17515-17515/com.zhoupan.unlockinguser E/NativeLoader: loadException
                                                                         java.lang.UnsatisfiedLinkError: dlopen failed: "/data/data/com.zhoupan.unlockinguser/files/libs/libBaiduMapSDK_base_v4_1_1.so" is 32-bit instead of 64-bit
                                                                             at java.lang.Runtime.load(Runtime.java:331)
                                                                             at java.lang.System.load(System.java:982)
                                                                             at com.baidu.platform.comapi.NativeLoader.f(Unknown Source)
                                                                             at com.baidu.platform.comapi.NativeLoader.b(Unknown Source)
                                                                             at com.baidu.platform.comapi.NativeLoader.a(Unknown Source)
                                                                             at com.baidu.platform.comapi.NativeLoader.c(Unknown Source)
                                                                             at com.baidu.platform.comapi.NativeLoader.loadCustomizeNativeLibrary(Unknown Source)
                                                                             at com.baidu.platform.comapi.NativeLoader.loadLibrary(Unknown Source)
                                                                             at com.baidu.platform.comapi.a.<clinit>(Unknown Source)
                                                                             at com.baidu.platform.comapi.b.a(Unknown Source)
                                                                             at com.baidu.mapapi.SDKInitializer.initialize(Unknown Source)
                                                                             at com.baidu.mapapi.SDKInitializer.initialize(Unknown Source)
                                                                             at com.zhoupan.unlockinguser.application.LocationApplication.onCreate(LocationApplication.java:32)
                                                                             at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1011)

  

解決辦法:
原因是在build文件中加載了fresco庫
//    compile 'com.facebook.fresco:fresco:0.9.0+'
刪掉以后可以運行。

 

原文鏈接

 

 


2.Android使用百度地圖定位出現藍屏問題

原因是targetVersion >= 23,那么運行到6.0及以上設備時,默認所有權限都不開啟,

必須動態requestPermission,這里需要位置權限,默認沒開啟導致此結果。

把targetVersion 設置成22及以下就行,當targetVersion<23時,默認開啟全部權限。

原文鏈接

 

附:

實現百度地圖定位,使用GEO過程中,需要使用maker來展示圖標及文字信息時,百度地圖官方給的類只能展示圖片,如果需要展示文字,需要自己額外實現,具體實現方法:

百度地圖marker上添加文字的一種實現方案

首先,添加一個布局文件,代碼如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@android:color/transparent"
    android:gravity="center_vertical"
    android:orientation="vertical"
    android:padding="10dp" >
    <TextView
        android:id="@+id/dancegroup_place_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:textSize="15sp"
        android:text="湖北省"
        android:textColor="@color/colorPrimary"
        android:textStyle="bold"/>

    <ImageView android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="centerCrop"
        android:padding="5dip"
        android:src="@drawable/ic_dance_group"
        android:layout_gravity="center_horizontal"/>
</LinearLayout>

 接着在實現定位的Activity類中添加一個如下方法:

 private Bitmap getViewBitmap(View addViewContent) {

        addViewContent.setDrawingCacheEnabled(true);
        addViewContent.measure(
                View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
                View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
        addViewContent.layout(0, 0,
                addViewContent.getMeasuredWidth(),
                addViewContent.getMeasuredHeight());
        addViewContent.buildDrawingCache();

        Bitmap cacheBitmap = addViewContent.getDrawingCache();
        Bitmap bitmap = Bitmap.createBitmap(cacheBitmap);

        return bitmap;
    }

 

然后,在所監聽類中,把上午布局XML文件視圖View轉換為Bitmap,轉換過程如下:

TextView dance_name;
LayoutInflater factory; ... .... factory
= LayoutInflater.from(MainActivity.this); view11 = factory.inflate(R.layout.video_camera,null);
dance_name
= (TextView)view11.findViewById(R.id.dancegroup_place_name); dance_name.setText(place[num % 4]); BitmapDescriptor bdB = BitmapDescriptorFactory.fromBitmap(getViewBitmap(view11));

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM