2012-04-17 4 views
0

Я пытаюсь использовать OSMdroid для проекта, и я совершенно неспособен сделать простейший код работы. Ну, несколько дней назад я смог отображать карты и т. Д., И теперь я даже не могу создать экземпляр MapView. Я уменьшил код до его самой сильной формы. Я работаю с затмением. Я скачал osmdroid-андроида-3.0.5.jar и SLF4J-андроид-1.5.8.jar, и я включил их в проект путем добавления строк в файл пути CLASSPATHНевозможно создать экземпляр OsmDroid MapView

<classpathentry kind="lib" path="lib/osmdroid-android-3.0.5.jar"/> 
<classpathentry kind="lib" path="lib/slf4j-android-1.5.8.jar"/> 

Или правой кнопкой мыши на них, то построить Path-> Добавить построить путь (оба дали один и тот же результат, во всяком случае)

Тогда я напечатал этот код:

import android.app.Activity; 
import org.osmdroid.tileprovider.tilesource.TileSourceFactory; 
import org.osmdroid.util.GeoPoint; 
import org.osmdroid.views.MapController; 
import org.osmdroid.views.MapView; 

import android.os.Bundle; 

public class TestMapActivity extends Activity { 
/** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     MapView mv=new MapView(this,256); 

    } 
} 

И я получаю ошибку при его запуске на эмуляторе:

04-17 09:10:31.181: E/AndroidRuntime(595): FATAL EXCEPTION: main 
04-17 09:10:31.181: E/AndroidRuntime(595): java.lang.NoClassDefFoundError:   org.osmdroid.views.MapView 
04-17 09:10:31.181: E/AndroidRuntime(595): at  testmap.sagem.TestMapActivity.onCreate(TestMapActivity.java:17) 
04-17 09:10:31.181: E/AndroidRuntime(595): at android.app.Activity.performCreate(Activity.java:4465) 
04-17 09:10:31.181: E/AndroidRuntime(595): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 
04-17 09:10:31.181: E/AndroidRuntime(595): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 
04-17 09:10:31.181: E/AndroidRuntime(595): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 
04-17 09:10:31.181: E/AndroidRuntime(595): at android.app.ActivityThread.access$600(ActivityThread.java:123) 
04-17 09:10:31.181: E/AndroidRuntime(595): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 
04-17 09:10:31.181: E/AndroidRuntime(595): at android.os.Handler.dispatchMessage(Handler.java:99) 
04-17 09:10:31.181: E/AndroidRuntime(595): at android.os.Looper.loop(Looper.java:137) 
04-17 09:10:31.181: E/AndroidRuntime(595): at android.app.ActivityThread.main(ActivityThread.java:4424) 
04-17 09:10:31.181: E/AndroidRuntime(595): at java.lang.reflect.Method.invokeNative(Native Method) 
04-17 09:10:31.181: E/AndroidRuntime(595): at java.lang.reflect.Method.invoke(Method.java:511) 
04-17 09:10:31.181: E/AndroidRuntime(595): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
04-17 09:10:31.181: E/AndroidRuntime(595): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
04-17 09:10:31.181: E/AndroidRuntime(595): at dalvik.system.NativeStart.main(Native Method) 

Когда я комментирую «MapView mv = новый MapView (это, 256);» он работает, поэтому я не понимаю, почему mapview нельзя создать.

Любая идея по этому вопросу?

Благодарим за внимание.

EDIT: AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="testmap.sagem" 
android:versionCode="1" 
android:versionName="1.0" > 
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-sdk android:minSdkVersion="15" /> 
<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:name=".TestMapActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 
</manifest> 

Файл main.xml:

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

ответ

2

Изменение имени папки «Lib» в «ЛИЭС» и поместить все файлы фляги в этой папке и путь Charge фляги файлы в папку «ЛИЭС». Я не уверен, но думаю, что это сработает.

+1

Ooooh. Будьте здоровы. Я не думал, что это сработает, но это так. –

+0

Это не сработало для меня. –

1

Попробуйте использовать 3.0.7 и очистить проект. Дайте мне знать. http://code.google.com/p/osmdroid/downloads/list

+0

Ну, я попробовал, но у меня была такая же ошибка. Я также пробовал использовать slf4j-android-1.6.1-RC1.jar вместо 1.5.8, но опять же, ту же ошибку –

+0

Проверяя эту ветку: http://stackoverflow.com/questions/9135284/cannot-access-resource -conons-when-running-with-osmdroid-android-3-0-7 Я мог бы предложить использовать это: [ссылка на jar] (https://oss.sonatype.org/content/groups/public/org /osmdroid/osmdroid-android/3.0.8-SNAPSHOT/osmdroid-android-3.0.8-20120208.220818-1.jar) – N3sh

+0

Вы также можете добавить xml-файл? – N3sh

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

  • Нет связанных вопросов^_^