Пустой экран Mapbox в Android Studio - PullRequest
0 голосов
/ 01 апреля 2020

Я пытаюсь создать приложение карты в android studio, используя Mapbox, и оно работало, но теперь отображает только пустой экран.

Я возился с ним, пытаясь заставить его работать возраста, безрезультатно. У меня также есть 'Compativle бок о бок, версия NDK не найдена. По умолчанию 20.0.5594570 'ошибка / предупреждение. Я тоже не понимаю. Любая помощь будет высоко ценится и TIA.

MainActivity. java:

public class MainActivity extends AppCompatActivity implements OnMapReadyCallback {

private MapView mapView;
private MapboxMap map;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Mapbox.getInstance(this, getString(R.string.access_token));
    setContentView(R.layout.activity_main);
    mapView = (MapView) findViewById(R.id.mapView);
    mapView.onCreate(savedInstanceState);

}

@SuppressWarnings("deprecation")
public void onMapReady(@NonNull MapboxMap mapboxMap) {
    map = mapboxMap;
    mapboxMap.setStyle(Style.OUTDOORS);

    mapboxMap.setCameraPosition(
            new CameraPosition.Builder()
                .target(new LatLng(53.472, -2.239))
                .zoom(8.0)
                .build());

    mapboxMap.addMarker(new MarkerOptions()
            .position(new LatLng(53.472, -2.239))
            .title("John Dalton"));
}

@Override
public void onStart() {
    super.onStart();
    mapView.onStart();
}

@Override
public void onResume() {
    super.onResume();
    mapView.onResume();
}

Остальная часть кода просто onStop () и т. Д. c.

build.gradle (: app):


android {
    compileSdkVersion 29
    buildToolsVersion "29.0.3"

    defaultConfig {
        applicationId "com.example.stationmapper"
        minSdkVersion 23
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])

    implementation 'androidx.appcompat:appcompat:1.0.2'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

    //Mapbox dependencies
    implementation 'com.mapbox.mapboxsdk:mapbox-android-sdk:9.0.0'
    implementation 'com.mapbox.mapboxsdk:mapbox-android-plugin-annotation-v9:0.8.0'
}

Я думаю, что этого кода достаточно для определения и устранения проблемы, но если что-то понадобится, я отредактирую и предоставлю его.

Ответы [ 2 ]

1 голос
/ 01 апреля 2020

Ваша деятельность реализует OnMapReadyCallback, но вы пропускаете mapView.getMapAsync(this) после mapView.onCreate(savedInstanceState);.

@Override public void onMapReady(@NonNull MapboxMap mapboxMap) {
  map = mapboxMap;
  mapboxMap.setStyle(Style.OUTDOORS, new Style.OnStyleLoaded() {
    @Override public void onStyleLoaded(@NonNull Style style) {

    // Map is set up and the style has loaded. Now you can add data or make other map adjustments.

    }
  });
}

Затем добавьте маркер в область обратного вызова onStyleLoaded().

Вместо того, чтобы использовать устаревший метод addMarker (), рассмотрите возможность использования плагина аннотации Mapbox https://docs.mapbox.com/android/plugins/overview/annotation или SymbolLayer s и источников https://docs.mapbox.com/android/maps/overview/annotations/#source -и слой

0 голосов
/ 29 апреля 2020

Android Gradle Plugin 3.6+ имеет встроенную версию NDK для использования, если вы НЕ вызываете какую версию использовать. SHORT ANSWER должен использовать android.ndkVersion в файле build.gradle вашего модуля.

Даже если ваше приложение напрямую не использует NDK, вы все равно можете столкнуться с ошибкой так как mapbox нужен NDK для сборки / имеет собственные библиотеки, обратитесь к поданной проблеме .

...