它建议要解决此问题,请在终端中运行以下命令: flutter医生-Android-libenses
我遵循指令。不过,我收到相同的错误消息。运行Gradle:无法下载所需的Android SDK 组件,因为尚未接受以下许可证:Android SDK Build-Tools 26.0.2,Android SDK平台27
我尝试了 -
./sdkmanager --licenses
但没有成功。
问题与local.properties中的SDK路径相关。默认情况下,它指向不同的位置。一旦我将sdk.dir更改为我的Android SDK路径,它就可以了。我现在可以运行该应用程序。
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:geolocator/geolocator.dart';
import 'package:permission_handler/permission_handler.dart';
void main() {
runApp(GreenSpaceApp());
}
class GreenSpaceApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Green Space Finder',
theme: ThemeData(primarySwatch: Colors.green),
home: GreenSpaceScreen(),
);
}
}
class GreenSpaceScreen extends StatefulWidget {
@override
_GreenSpaceScreenState createState() => _GreenSpaceScreenState();
}
class _GreenSpaceScreenState extends State<GreenSpaceScreen> {
late GoogleMapController _mapController;
LatLng _currentLocation = LatLng(37.7749, -122.4194); // Default: San Francisco
Set<Marker> _markers = {};
@override
void initState() {
super.initState();
_getUserLocation();
}
Future<void> _getUserLocation() async {
var status = await Permission.location.request();
if (status.isGranted) {
Position position = await Geolocator.getCurrentPosition(
desiredAccuracy: LocationAccuracy.high);
setState(() {
_currentLocation = LatLng(position.latitude, position.longitude);
_mapController.animateCamera(CameraUpdate.newLatLngZoom(_currentLocation, 14));
_addGreenSpaces();
});
}
}
void _addGreenSpaces() {
setState(() {
_markers.add(Marker(
markerId: MarkerId('park1'),
position: LatLng(_currentLocation.latitude + 0.01, _currentLocation.longitude),
infoWindow: InfoWindow(title: 'Local Park'),
));
_markers.add(Marker(
markerId: MarkerId('park2'),
position: LatLng(_currentLocation.latitude - 0.01, _currentLocation.longitude + 0.01),
infoWindow: InfoWindow(title: 'Community Garden'),
));
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text('Find Green Spaces')),
body: GoogleMap(
initialCameraPosition: CameraPosition(target: _currentLocation, zoom: 12),
onMapCreated: (controller) => _mapController = controller,
markers: _markers,
myLocationEnabled: true,
),
floatingActionButton: FloatingActionButton(
onPressed: _getUserLocation,
child: Icon(Icons.my_location),
),
);
}
}