2010-08-31 3 views
1

Я создал новый MapActivity класс MapProba.MapActivity error: force close

От главного Activity Я хочу показать MapActivity: на событии нажатия кнопки я ставлю этот код:

Intent myIntent = new Intent(this, com.art.mode.MapProba.class);   
    startActivity(myIntent); 

Но я получаю силы, близкую ошибку.

В моем файле XML я использую этот код:

<LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 

     <com.google.android.maps.MapView 
     android:id="@+id/map_view" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:apiKey="SomeGoogleMapAPIKeyHere" /> 
</LinearLayout> 

В журнале я получаю эту ошибку:

08-31 04:47:10.218: ERROR/AndroidRuntime(593): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.art.mode/com.art.mode.MapProba}: 
android.view.InflateException: Binary XML file line #7: Error inflating class com.google.android.maps.MapView 

Линия 7: com.google.android.maps.MapView

Когда я удалить этот код формы XML файл:

<com.google.android.maps.MapView 
    android:id="@+id/map_view" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:apiKey="SomeGoogleMapAPIKeyHere" /> 

Blank появляется черный экран (нет ошибок)

В файле манифеста у меня есть:

uses-permission android:name="android.permission.INTERNET" 
uses-permission android:name="android.permission.ACCESS_LOCATION" 

<uses-library android:name="com.google.android.maps" /> 

Любая идея?

Благодаря


UPDATE

08-31 12:22:00.648: ERROR/AndroidRuntime(656): FATAL EXCEPTION: main 
08-31 12:22:00.648: ERROR/AndroidRuntime(656): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.art.mode/com.art.mode.MapProba}: android.view.InflateException: Binary XML file line #7: Error inflating class com.google.android.maps.MapView 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at android.os.Handler.dispatchMessage(Handler.java:99) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at android.os.Looper.loop(Looper.java:123) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at java.lang.reflect.Method.invokeNative(Native Method) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at java.lang.reflect.Method.invoke(Method.java:521) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at dalvik.system.NativeStart.main(Native Method) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class com.google.android.maps.MapView 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at android.view.LayoutInflater.createView(LayoutInflater.java:513) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:618) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at android.view.LayoutInflater.inflate(LayoutInflater.java:407) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at android.app.Activity.setContentView(Activity.java:1647) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at com.art.mode.MapProba.onCreate(MapProba.java:12) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  ... 11 more 
08-31 12:22:00.648: ERROR/AndroidRuntime(656): Caused by: java.lang.reflect.InvocationTargetException 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at com.google.android.maps.MapView.<init>(MapView.java:238) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at java.lang.reflect.Constructor.constructNative(Native Method) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at java.lang.reflect.Constructor.newInstance(Constructor.java:446) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at android.view.LayoutInflater.createView(LayoutInflater.java:500) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  ... 21 more 
08-31 12:22:00.648: ERROR/AndroidRuntime(656): Caused by: java.lang.NullPointerException 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at com.google.android.maps.MapActivity.setupMapView(MapActivity.java:382) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at com.google.android.maps.MapView.<init>(MapView.java:280) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  at com.google.android.maps.MapView.<init>(MapView.java:255) 
08-31 12:22:00.648: ERROR/AndroidRuntime(656):  ... 25 more 
+0

Проверит это решение http://stackoverflow.com/a/7644635/779408 – breceivemail

ответ

3

У меня была такая же проблема, вы должны поместить этот тег в свой AndroidManifest.XML

<uses-library android:name="com.google.android.maps"/> 

Это должно быть внутри:

<application> 
    <uses-library android:name="com.google.android.maps"/> 
</application> 

!!!! никогда, никогда за пределами

и использовать это на Yous деятельности

Intent myIntent = new Intent(getBaseContext(), MapProba.class);    
startActivity(myIntent); 
0

Вы можете отправить еще журнал ошибок, что приходит сразу после

XML файл строка # 7: Ошибка при наполнении класса ком. google.android.maps.MapView ...

Это, вероятно, сказать, почему он не смог надуть этот класс, является ли нет, или он отсутствует библиотек ... и т.д. ...

- После вашего обновления -

Каких вы используете это устройство?

Если вы используете эмулятор, вам необходимо использовать Google API в качестве цели сборки.

Если вы используете реальное устройство, оно должно нормально работать на G1, но если это устройство, на котором вы портировали Android из AOSP, у вас, скорее всего, нет установленных библиотек.

В частности, вы должны иметь файлы, такие как com.google.android.maps.jar и com.google.android.maps.xml Существует хороший учебник там использовать MapView: http://developer.android.com/resources/tutorials/views/hello-mapview.html

+0

У меня есть вопрос редактирования со всеми логами. Спасибо за ответ – Jovan

0

На ваш Карты формы класса, вы использовали extends MapActivity вместо extends Activity? Это немного изменило меня, прежде чем я понял, что использовал неправильный расширенный класс. : P