Autore Topic: modificare codice esistente  (Letto 411 volte)

Offline asnif

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    s3neo
  • Sistema operativo:
    linux mint win7
modificare codice esistente
« il: 04 Ottobre 2014, 22:39:02 CEST »
0
è normale che se prendo un app funzionante, modifico una cosa semplice (che non può dare errori)  ad esempio un numero nella longitudine.

l'applicazione sembra compilare correttamente ma poi va in crash??



10-04 16:33:46.675: E/AndroidRuntime(1360): FATAL EXCEPTION: main
10-04 16:33:46.675: E/AndroidRuntime(1360): Process: info.androidhive.googlemapsv2, PID: 1360
10-04 16:33:46.675: E/AndroidRuntime(1360): java.lang.RuntimeException: Unable to start activity ComponentInfo{info.androidhive.googlemapsv2/info.androidhive.googlemapsv2.MainActivity}: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
10-04 16:33:46.675: E/AndroidRuntime(1360):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at android.app.ActivityThread.access$800(ActivityThread.java:135)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at android.os.Handler.dispatchMessage(Handler.java:102)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at android.os.Looper.loop(Looper.java:136)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at android.app.ActivityThread.main(ActivityThread.java:5017)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at java.lang.reflect.Method.invokeNative(Native Method)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at java.lang.reflect.Method.invoke(Method.java:515)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at dalvik.system.NativeStart.main(Native Method)
10-04 16:33:46.675: E/AndroidRuntime(1360): Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class fragment
10-04 16:33:46.675: E/AndroidRuntime(1360):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:713)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:755)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at android.app.Activity.setContentView(Activity.java:1929)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at info.androidhive.googlemapsv2.MainActivity.onCreate(MainActivity.java:24)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at android.app.Activity.performCreate(Activity.java:5231)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
10-04 16:33:46.675: E/AndroidRuntime(1360):    ... 11 more
10-04 16:33:46.675: E/AndroidRuntime(1360): Caused by: java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value.  Expected 5089000 but found 0.  You must have the following declaration within the <application> element:     <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
10-04 16:33:46.675: E/AndroidRuntime(1360):    at com.google.android.gms.common.GooglePlayServicesUtil.A(Unknown Source)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at com.google.android.gms.common.GooglePlayServicesUtil.isGooglePlayServicesAvailable(Unknown Source)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at com.google.android.gms.maps.internal.u.I(Unknown Source)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at com.google.android.gms.maps.internal.u.H(Unknown Source)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at com.google.android.gms.maps.MapsInitializer.initialize(Unknown Source)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at com.google.android.gms.maps.MapFragment$b.jz(Unknown Source)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at com.google.android.gms.maps.MapFragment$b.a(Unknown Source)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at com.google.android.gms.dynamic.a.a(Unknown Source)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at com.google.android.gms.dynamic.a.onInflate(Unknown Source)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at com.google.android.gms.maps.MapFragment.onInflate(Unknown Source)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at android.app.Activity.onCreateView(Activity.java:4785)
10-04 16:33:46.675: E/AndroidRuntime(1360):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:689)
10-04 16:33:46.675: E/AndroidRuntime(1360):    ... 21 more

Offline lillogoal

  • Utente normale
  • ***
  • Post: 167
  • Respect: +4
    • Google+
    • lillosogliani
    • Mostra profilo
    • LilloNet
  • Dispositivo Android:
    Galaxy s3, Nexus 7,galaxy s advance,galaxy scl
  • Play Store ID:
    Lillonet Inc.
  • Sistema operativo:
    Windows 8,7 & Kali-Linux
Re:modificare codice esistente
« Risposta #1 il: 05 Ottobre 2014, 00:20:20 CEST »
0
Guardando il logcat ho notato questa riga:
Codice (XML): [Seleziona]
Caused by: java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value.  Expected 5089000 but found 0.  You must have the following declaration within the <application> element:     <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
posta se puoi Il manifest se puoi...
Chi non progetta la sicurezza , programma il fallimento! K.M

Offline asnif

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    s3neo
  • Sistema operativo:
    linux mint win7
Re:modificare codice esistente
« Risposta #2 il: 05 Ottobre 2014, 09:58:52 CEST »
0
il codice l'ho preso da Android Google Maps V2 Tutorial

certo che posso!   :-)

Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="info.androidhive.googlemapsv2"
   android:versionCode="1"
   android:versionName="1.0" >

    <permission
       android:name="info.androidhive.googlemapsv2.permission.MAPS_RECEIVE"
       android:protectionLevel="signature" />

    <uses-permission android:name="info.androidhive.googlemapsv2.permission.MAPS_RECEIVE" />

    <uses-sdk
       android:minSdkVersion="12"
       android:targetSdkVersion="17" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <!-- Required to show current location -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <!-- Required OpenGL ES 2.0. for Maps V2 -->
    <uses-feature
       android:glEsVersion="0x00020000"
       android:required="true" />

    <!-- Requires OpenGL ES version 2 -->
    <uses-feature
       android:glEsVersion="0x00020000"
       android:required="true" />

    <application
       android:allowBackup="true"
       android:icon="@drawable/ic_launcher"
       android:label="@string/app_name">
        <activity
           android:name="info.androidhive.googlemapsv2.MainActivity"
           android:label="@string/app_name"
           android:theme="@style/AppBaseTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

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

        <!-- Goolge API Key -->
        <meta-data
           android:name="com.google.android.maps.v2.API_KEY"
           android:value="AIzaSyCUOlloV-U0MH18XHKSgwy_hFQJlt5eRVg" />
    </application>

</manifest>

questo è il codice
Codice (Java): [Seleziona]
package info.androidhive.googlemapsv2;

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;

import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.MarkerOptions;

public class MainActivity extends Activity {

        // Google Map
        private GoogleMap googleMap;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);

                try {
                        // Loading map
                        initilizeMap();

                        // Changing map type
                        googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL);
                        // googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);
                        // googleMap.setMapType(GoogleMap.MAP_TYPE_SATELLITE);
                        // googleMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
                        // googleMap.setMapType(GoogleMap.MAP_TYPE_NONE);

                        // Showing / hiding your current location
                        googleMap.setMyLocationEnabled(true);

                        // Enable / Disable zooming controls
                        googleMap.getUiSettings().setZoomControlsEnabled(false);

                        // Enable / Disable my location button
                        googleMap.getUiSettings().setMyLocationButtonEnabled(true);

                        // Enable / Disable Compass icon
                        googleMap.getUiSettings().setCompassEnabled(true);

                        // Enable / Disable Rotate gesture
                        googleMap.getUiSettings().setRotateGesturesEnabled(true);

                        // Enable / Disable zooming functionality
                        googleMap.getUiSettings().setZoomGesturesEnabled(true);

                        double latitude = 17.385054;
                        double longitude = 78.486671;

                        // lets place some 10 random markers
                        for (int i = 0; i < 10; i++) {
                                // random latitude and logitude
                                double[] randomLocation = createRandLocation(latitude,
                                                longitude);

                                // Adding a marker
                                MarkerOptions marker = new MarkerOptions().position(
                                                new LatLng(randomLocation[0], randomLocation[1]))
                                                .title("Hello Maps " + i);

                                Log.e("Random", "> " + randomLocation[0] + ", "
                                                + randomLocation[1]);

                                // changing marker color
                                if (i == 0)
                                        marker.icon(BitmapDescriptorFactory
                                                        .defaultMarker(BitmapDescriptorFactory.HUE_AZURE));
                                if (i == 1)
                                        marker.icon(BitmapDescriptorFactory
                                                        .defaultMarker(BitmapDescriptorFactory.HUE_BLUE));
                                if (i == 2)
                                        marker.icon(BitmapDescriptorFactory
                                                        .defaultMarker(BitmapDescriptorFactory.HUE_CYAN));
                                if (i == 3)
                                        marker.icon(BitmapDescriptorFactory
                                                        .defaultMarker(BitmapDescriptorFactory.HUE_GREEN));
                                if (i == 4)
                                        marker.icon(BitmapDescriptorFactory
                                                        .defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA));
                                if (i == 5)
                                        marker.icon(BitmapDescriptorFactory
                                                        .defaultMarker(BitmapDescriptorFactory.HUE_ORANGE));
                                if (i == 6)
                                        marker.icon(BitmapDescriptorFactory
                                                        .defaultMarker(BitmapDescriptorFactory.HUE_RED));
                                if (i == 7)
                                        marker.icon(BitmapDescriptorFactory
                                                        .defaultMarker(BitmapDescriptorFactory.HUE_ROSE));
                                if (i == 8)
                                        marker.icon(BitmapDescriptorFactory
                                                        .defaultMarker(BitmapDescriptorFactory.HUE_VIOLET));
                                if (i == 9)
                                        marker.icon(BitmapDescriptorFactory
                                                        .defaultMarker(BitmapDescriptorFactory.HUE_YELLOW));

                                googleMap.addMarker(marker);

                                // Move the camera to last position with a zoom level
                                if (i == 9) {
                                        CameraPosition cameraPosition = new CameraPosition.Builder()
                                                        .target(new LatLng(randomLocation[0],
                                                                        randomLocation[1])).zoom(15).build();

                                        googleMap.animateCamera(CameraUpdateFactory
                                                        .newCameraPosition(cameraPosition));
                                }
                        }

                } catch (Exception e) {
                        e.printStackTrace();
                }

        }

        @Override
        protected void onResume() {
                super.onResume();
                initilizeMap();
        }

        /**
         * function to load map If map is not created it will create it for you
         * */

        private void initilizeMap() {
                if (googleMap == null) {
                        googleMap = ((MapFragment) getFragmentManager().findFragmentById(
                                        R.id.map)).getMap();

                        // check if map is created successfully or not
                        if (googleMap == null) {
                                Toast.makeText(getApplicationContext(),
                                                "Sorry! unable to create maps", Toast.LENGTH_SHORT)
                                                .show();
                        }
                }
        }

        /*
         * creating random postion around a location for testing purpose only
         */

        private double[] createRandLocation(double latitude, double longitude) {

                return new double[] { latitude + ((Math.random() - 0.5) / 500),
                                longitude + ((Math.random() - 0.5) / 500),
                                150 + ((Math.random() - 0.5) * 10) };
        }
}

questo è l'activity_main.xml
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent" >

    <fragment
       android:id="@+id/map"
       android:name="com.google.android.gms.maps.MapFragment"
       android:layout_width="match_parent"
       android:layout_height="match_parent"/>

</RelativeLayout>

Post unito: 05 Ottobre 2014, 12:03:19 CEST
l'app mi va sempre in crash quando provo a metterci una mappa.

anche seguendo la semplicissima guida di google https://developers.google.com/maps/documentation/android/start#add_a_map

sembra compilare bene, ma poi va in crash.  ho configurato male qualcosa? O_o ??
se fosse un errore logico ci potrei ragionare.. ma così è molto frustrante sono fermo da giorni.
« Ultima modifica: 05 Ottobre 2014, 12:03:19 CEST da asnif, Reason: Merged DoublePost »

Offline asnif

  • Nuovo arrivato
  • *
  • Post: 7
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    s3neo
  • Sistema operativo:
    linux mint win7
Re:modificare codice esistente
« Risposta #3 il: 06 Ottobre 2014, 11:13:59 CEST »
0
Salve ragazzi ho risolto.

cancellando eclipse e riscaricandolo!

grazie a tutti :)