Android studio 在Android Studio中使用Mapsforge
我需要在我的Android Studio应用程序中使用Mapsforge(离线地图)。我已导入这些库:Android studio 在Android Studio中使用Mapsforge,android-studio,mapsforge,Android Studio,Mapsforge,我需要在我的Android Studio应用程序中使用Mapsforge(离线地图)。我已导入这些库: mapsforge-core-0.4.0.jar mapsforge-map-0.4.0.jar mapsforge-map-android-0.4.0.jar mapsforge-map-reader-0.4.0.jar svg-android-0.4.0.jar 我在build.gradle中包含了依赖项: compile fileTree(dir: 'libs', include:
- mapsforge-core-0.4.0.jar
- mapsforge-map-0.4.0.jar
- mapsforge-map-android-0.4.0.jar
- mapsforge-map-reader-0.4.0.jar
- svg-android-0.4.0.jar
compile fileTree(dir: 'libs', include: ['*.jar'])
代码如下:
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import org.mapsforge.map.android.view.MapView;
public class MapaForgeFragment extends Fragment {
private MapView mapView;
private View view;
public static MapaForgeFragment newInstance() {
MapaForgeFragment fragment = new MapaForgeFragment();
Bundle args = new Bundle();
fragment.setArguments(args);
return fragment;
}
public MapaForgeFragment() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.fragment_mapa_forge, container, false);
mapView = (MapView) view.findViewById(R.id.mapView);
return view;
}
}
在xml中:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="cat.bcn.horta.MapaForgeFragment">
<org.mapsforge.map.android.view.MapView
android:id="@+id/mapView"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</FrameLayout>
这是返回的错误:
E/AndroidRuntime﹕ FATAL EXCEPTION: main
android.view.InflateException: Binary XML file line #7: Error inflating class org.mapsforge.map.android.view.MapView
at android.view.LayoutInflater.createView(LayoutInflater.java:613)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at cat.bcn.horta.MapaForgeFragment.onCreateView(MapaForgeFragment.java:36)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:938)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1115)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1478)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:446)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5227)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:587)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at cat.bcn.horta.MapaForgeFragment.onCreateView(MapaForgeFragment.java:36)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:938)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1115)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1478)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:446)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5227)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at org.mapsforge.map.view.FpsCounter.createPaint(FpsCounter.java:33)
at org.mapsforge.map.view.FpsCounter.<init>(FpsCounter.java:47)
at org.mapsforge.map.android.view.MapView.<init>(MapView.java:70)
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:587)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at cat.bcn.horta.MapaForgeFragment.onCreateView(MapaForgeFragment.java:36)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:938)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1115)
at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1478)
at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:446)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5227)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime﹕ 致命异常:主
android.view.InflateException:二进制XML文件行#7:膨胀类org.mapsforge.map.android.view.MapView时出错
在android.view.LayoutInflater.createView中(LayoutInflater.java:613)
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
在android.view.LayoutInflater.充气(LayoutInflater.java:489)
在android.view.LayoutInflater.inflate(LayoutInflater.java:396)
位于cat.bcn.horta.MapaForgeFragment.onCreateView(MapaForgeFragment.java:36)
位于android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:938)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1115)
位于android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
位于android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1478)
位于android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:446)
位于android.os.Handler.handleCallback(Handler.java:725)
位于android.os.Handler.dispatchMessage(Handler.java:92)
位于android.os.Looper.loop(Looper.java:137)
位于android.app.ActivityThread.main(ActivityThread.java:5227)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:511)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
在dalvik.system.NativeStart.main(本机方法)
原因:java.lang.reflect.InvocationTargetException
位于java.lang.reflect.Constructor.constructNative(本机方法)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:417)
位于android.view.LayoutInflater.createView(LayoutInflater.java:587)
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
在android.view.LayoutInflater.充气(LayoutInflater.java:489)
在android.view.LayoutInflater.inflate(LayoutInflater.java:396)
位于cat.bcn.horta.MapaForgeFragment.onCreateView(MapaForgeFragment.java:36)
位于android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:938)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1115)
位于android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
位于android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1478)
位于android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:446)
位于android.os.Handler.handleCallback(Handler.java:725)
位于android.os.Handler.dispatchMessage(Handler.java:92)
位于android.os.Looper.loop(Looper.java:137)
位于android.app.ActivityThread.main(ActivityThread.java:5227)
位于java.lang.reflect.Method.Invokenactive(本机方法)
位于java.lang.reflect.Method.invoke(Method.java:511)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
在dalvik.system.NativeStart.main(本机方法)
原因:java.lang.NullPointerException
在org.mapsforge.map.view.FpsCounter.createPaint上(FpsCounter.java:33)
在org.mapsforge.map.view.FpsCounter上(FpsCounter.java:47)
在org.mapsforge.map.android.view.MapView上。(MapView.java:70)
位于java.lang.reflect.Constructor.constructNative(本机方法)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:417)
位于android.view.LayoutInflater.createView(LayoutInflater.java:587)
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
在android.view.LayoutInflater.充气(LayoutInflater.java:489)
在android.view.LayoutInflater.inflate(LayoutInflater.java:396)
位于cat.bcn.horta.MapaForgeFragment.onCreateView(MapaForgeFragment.java:36)
位于android.support.v4.app.Fragment.performCreateView(Fragment.java:1500)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:938)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1115)
位于android.support.v4.app.BackStackRecord.run(BackStackRecord.java:682)
位于android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1478)
AndroidGraphicFactory.createInstance(appContext);