2013-04-04 2 views
3

У меня есть файл kml, хранящийся в моей sdcard.I хочу открыть его через карту google в моем приложении, поэтому я использовал приведенный ниже код, но я получаю сообщение об ошибке «android illegalstateexception не удалось выполнить способ действия «android - как открыть файл kml в android

Я не хочу рисовать карту, и все, что я хочу открыть файл kml, который уже хранится в моей SD-карте и показывать его.

Когда я google, у меня было много предметов, связанных с рисованием карты на основе данных, этого я не хочу.

Мой код:

public void showmap(View v){ 

    File file = new File(Environment.getExternalStorageDirectory(), "10.kml"); 
    Intent map_intent = new Intent(Intent.ACTION_VIEW); 
    map_intent.setClassName("com.google.earth", "com.google.earth.EarthActivity"); 
    map_intent.setDataAndType(Uri.fromFile(file), "application/vnd.google-earth.kml+xml"); 
    startActivity(map_intent); 
} 

My Android Manifest File

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

    <uses-sdk 
     android:minSdkVersion="15" 
     android:targetSdkVersion="16" /> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.VIBRATE"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.CAMERA" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.lyold.LoginActivity" 
      android:screenOrientation="landscape" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:screenOrientation="landscape" 
      android:name=".Home" /> 

     <activity android:name="com.google.earth.EarthActivity" android:screenOrientation="landscape"/> 




    </application> 

</manifest> 

Моя ошибка LogCat:

04-04 18:01:05.387: E/AndroidRuntime(5846): FATAL EXCEPTION: main 
04-04 18:01:05.387: E/AndroidRuntime(5846): java.lang.IllegalStateException: Could not execute method of the activity 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at android.view.View$1.onClick(View.java:3044) 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at android.view.View.performClick(View.java:3511) 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at android.view.View$PerformClick.run(View.java:14105) 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at android.os.Handler.handleCallback(Handler.java:605) 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at android.os.Handler.dispatchMessage(Handler.java:92) 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at android.os.Looper.loop(Looper.java:137) 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at android.app.ActivityThread.main(ActivityThread.java:4424) 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at java.lang.reflect.Method.invoke(Method.java:511) 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at dalvik.system.NativeStart.main(Native Method) 
04-04 18:01:05.387: E/AndroidRuntime(5846): Caused by: java.lang.reflect.InvocationTargetException 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at java.lang.reflect.Method.invoke(Method.java:511) 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at android.view.View$1.onClick(View.java:3039) 
04-04 18:01:05.387: E/AndroidRuntime(5846): Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file:///mnt/sdcard/10.kml typ=application/vnd.google-earth.kml+xml } 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1512) 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1384) 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at android.app.Activity.startActivityForResult(Activity.java:3190) 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at android.app.Activity.startActivity(Activity.java:3297) 
04-04 18:01:05.387: E/AndroidRuntime(5846):  at com.example.ashadegreen.Basement.showmap(Basement.java:106) 

Я новичок в android.Please помощь me..Your помощи является очень оценили.

ответ

0

Проверьте разрешение AndroidManifest.xml FILE и убедитесь, что путь к файлу, который вы пытаетесь открыть (10.kml). Кроме этого, все в порядке.

+0

только путь к файлу – sdg

Смежные вопросы