Autore Topic: Condividere dati tra Activity utilizzando un Application  (Letto 607 volte)

Offline Sirio22

  • Utente junior
  • **
  • Post: 93
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Windows 7/8.1
Condividere dati tra Activity utilizzando un Application
« il: 20 Ottobre 2010, 12:48:02 CEST »
0
Ho seguito il tutorial di JD ma non so dove mettere l'application eccovi il manifest mi da errore
Codice (XML): [Seleziona]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="org.project" android:versionCode="1" android:versionName="1.0">

        <application android:icon="@drawable/icon" android:label="@string/app_name">
                <activity android:name=".CitySurvivalActivity" android:label="@string/app_name">
                        <intent-filter>
                                <action android:name="android.intent.action.MAIN" />
                                <category android:name="android.intent.category.LAUNCHER" />
                        </intent-filter>
                </activity>

                <activity android:name=".gpsManagerActivity" android:label="@string/app_name">
                </activity>

                <activity android:name=".SchedaNegozioActivity" android:label="@string/app_name">
                </activity>
                       
                <activity android:name=".TutorialGPSeMapView" android:label="@string/app_name">
                </activity>
           
                <activity android:name=".PreferitiActivity" android:label="@string/app_name">
                </activity>    
           
           
           
        </application>

                 <application
android:icon="@drawable/icon"
               android:name="GlobalMangerApplication"
               android:label="@string/app_name">
                </application>

       
       
        <uses-library android:name="com.google.android.maps" />
        <uses-permission android:name="android.permission.INTERNET" />
        <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_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_GPS" />
        <uses-permission android:name="android.permission.CALL_PHONE" />
        <uses-sdk android:minSdkVersion="7" />
</manifest>

Codice (Java): [Seleziona]
......
private GlobalManagerApplication GMA=new GlobalManagerApplication();
.....
public void onCreate(Bundle savedInstanceState) {
.........
GMA=(GlobalManagerApplication)this.getApplication();

...}
LocationListener locationListener = new LocationListener() {
.....
GMA.setString();
......


L'errore è

Codice: [Seleziona]
10-20 10:50:44.490: ERROR/AndroidRuntime(307): Uncaught handler: thread main exiting due to uncaught exception
10-20 10:50:44.510: ERROR/AndroidRuntime(307): java.lang.RuntimeException: Unable to start activity ComponentInfo{org.project/org.project.CitySurvivalActivity}: java.lang.ClassCastException: android.app.Application
10-20 10:50:44.510: ERROR/AndroidRuntime(307):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
10-20 10:50:44.510: ERROR/AndroidRuntime(307):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
10-20 10:50:44.510: ERROR/AndroidRuntime(307):     at android.app.ActivityThread.access$2200(ActivityThread.java:119)
10-20 10:50:44.510: ERROR/AndroidRuntime(307):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
10-20 10:50:44.510: ERROR/AndroidRuntime(307):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-20 10:50:44.510: ERROR/AndroidRuntime(307):     at android.os.Looper.loop(Looper.java:123)
10-20 10:50:44.510: ERROR/AndroidRuntime(307):     at android.app.ActivityThread.main(ActivityThread.java:4363)
10-20 10:50:44.510: ERROR/AndroidRuntime(307):     at java.lang.reflect.Method.invokeNative(Native Method)
10-20 10:50:44.510: ERROR/AndroidRuntime(307):     at java.lang.reflect.Method.invoke(Method.java:521)
10-20 10:50:44.510: ERROR/AndroidRuntime(307):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
10-20 10:50:44.510: ERROR/AndroidRuntime(307):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
10-20 10:50:44.510: ERROR/AndroidRuntime(307):     at dalvik.system.NativeStart.main(Native Method)
10-20 10:50:44.510: ERROR/AndroidRuntime(307): Caused by: java.lang.ClassCastException: android.app.Application
10-20 10:50:44.510: ERROR/AndroidRuntime(307):     at org.project.CitySurvivalActivity.onCreate(CitySurvivalActivity.java:169)
10-20 10:50:44.510: ERROR/AndroidRuntime(307):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
10-20 10:50:44.510: ERROR/AndroidRuntime(307):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
10-20 10:50:44.510: ERROR/AndroidRuntime(307):     ... 11 more

« Ultima modifica: 20 Ottobre 2010, 13:13:39 CEST da JD »
Let Your Brain Run Away

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Condividere dati tra Activity utilizzando un Application
« Risposta #1 il: 20 Ottobre 2010, 12:57:48 CEST »
0
Hai provato con questo?

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

        <application android:icon="@drawable/icon" android:label="@string/app_name" android:name="GlobalMangerApplication">
                <activity android:name=".CitySurvivalActivity" android:label="@string/app_name">
                        <intent-filter>
                                <action android:name="android.intent.action.MAIN" />
                                <category android:name="android.intent.category.LAUNCHER" />
                        </intent-filter>
                </activity>

                <activity android:name=".gpsManagerActivity" android:label="@string/app_name">
                </activity>

                <activity android:name=".SchedaNegozioActivity" android:label="@string/app_name">
                </activity>
                       
                <activity android:name=".TutorialGPSeMapView" android:label="@string/app_name">
                </activity>
           
                <activity android:name=".PreferitiActivity" android:label="@string/app_name">
                </activity>    
           
           
           
        </application>
       
        <uses-library android:name="com.google.android.maps" />
        <uses-permission android:name="android.permission.INTERNET" />
        <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_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_GPS" />
        <uses-permission android:name="android.permission.CALL_PHONE" />
        <uses-sdk android:minSdkVersion="7" />
</manifest>

Offline Sirio22

  • Utente junior
  • **
  • Post: 93
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Windows 7/8.1
Re:Condividere dati tra Activity utilizzando un Application
« Risposta #2 il: 20 Ottobre 2010, 12:59:46 CEST »
0
Ho appena provato e mi da sempre questo errore

Codice: [Seleziona]
10-20 10:58:59.421: ERROR/AndroidRuntime(334): Uncaught handler: thread main exiting due to uncaught exception
10-20 10:58:59.439: ERROR/AndroidRuntime(334): java.lang.RuntimeException: Unable to instantiate application org.project.GlobalMangerApplication: java.lang.ClassNotFoundException: org.project.GlobalMangerApplication in loader dalvik.system.PathClassLoader@43d027f0
10-20 10:58:59.439: ERROR/AndroidRuntime(334):     at android.app.ActivityThread$PackageInfo.makeApplication(ActivityThread.java:523)
10-20 10:58:59.439: ERROR/AndroidRuntime(334):     at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3996)
10-20 10:58:59.439: ERROR/AndroidRuntime(334):     at android.app.ActivityThread.access$2900(ActivityThread.java:119)
10-20 10:58:59.439: ERROR/AndroidRuntime(334):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1901)
10-20 10:58:59.439: ERROR/AndroidRuntime(334):     at android.os.Handler.dispatchMessage(Handler.java:99)
10-20 10:58:59.439: ERROR/AndroidRuntime(334):     at android.os.Looper.loop(Looper.java:123)
10-20 10:58:59.439: ERROR/AndroidRuntime(334):     at android.app.ActivityThread.main(ActivityThread.java:4363)
10-20 10:58:59.439: ERROR/AndroidRuntime(334):     at java.lang.reflect.Method.invokeNative(Native Method)
10-20 10:58:59.439: ERROR/AndroidRuntime(334):     at java.lang.reflect.Method.invoke(Method.java:521)
10-20 10:58:59.439: ERROR/AndroidRuntime(334):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
10-20 10:58:59.439: ERROR/AndroidRuntime(334):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
10-20 10:58:59.439: ERROR/AndroidRuntime(334):     at dalvik.system.NativeStart.main(Native Method)
10-20 10:58:59.439: ERROR/AndroidRuntime(334): Caused by: java.lang.ClassNotFoundException: org.project.GlobalMangerApplication in loader dalvik.system.PathClassLoader@43d027f0
10-20 10:58:59.439: ERROR/AndroidRuntime(334):     at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
10-20 10:58:59.439: ERROR/AndroidRuntime(334):     at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
10-20 10:58:59.439: ERROR/AndroidRuntime(334):     at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
10-20 10:58:59.439: ERROR/AndroidRuntime(334):     at android.app.Instrumentation.newApplication(Instrumentation.java:942)
10-20 10:58:59.439: ERROR/AndroidRuntime(334):     at android.app.ActivityThread$PackageInfo.makeApplication(ActivityThread.java:518)
10-20 10:58:59.439: ERROR/AndroidRuntime(334):     ... 11 more
« Ultima modifica: 20 Ottobre 2010, 13:13:26 CEST da JD, Reason: Usate i bbcode java e xml!! xD »
Let Your Brain Run Away

Offline JD

  • Amministratore
  • Utente storico
  • *****
  • Post: 1600
  • Respect: +232
    • leinardi
    • Mostra profilo
  • Dispositivo Android:
    LG Nexus 5
  • Sistema operativo:
    L'ultima Ubuntu
Re:Condividere dati tra Activity utilizzando un Application
« Risposta #3 il: 20 Ottobre 2010, 13:15:24 CEST »
0
La dalvik non trova la classe:
Codice: [Seleziona]
Unable to instantiate application org.project.GlobalMangerApplication: java.lang.ClassNotFoundException: org.project.GlobalMangerApplication
Sicuro di aver scritto bene tutti i nomi?
È stata trovata una soluzione al tuo problema?
Evidenzia il post più utile premendo . È un ottimo modo per ringraziare chi ti ha aiutato ;).
E se hai aperto tu il thread marcalo come risolto cliccando !

Offline Sirio22

  • Utente junior
  • **
  • Post: 93
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Windows 7/8.1
Re:Condividere dati tra Activity utilizzando un Application
« Risposta #4 il: 20 Ottobre 2010, 13:22:04 CEST »
0
ricontrollo ma ti posto pure la classe Application di riferimento

Codice (Java): [Seleziona]
package org.project;

import android.app.Application;

public class GlobalManagerApplication extends Application {
    private String CAPcorrente;
    private String viaCorrente;
    private String cittaCorrente;
    private String NegozioAus;
   
        public String getCAPcorrente() {
                return CAPcorrente;
        }
        public void setCAPcorrente(String pcorrente) {
                CAPcorrente = pcorrente;
        }
        public String getViaCorrente() {
                return viaCorrente;
        }
        public void setViaCorrente(String viaCorrente) {
                this.viaCorrente = viaCorrente;
        }
        public String getCittaCorrente() {
                return cittaCorrente;
        }
        public void setCittaCorrente(String cittaCorrente) {
                this.cittaCorrente = cittaCorrente;
        }
        public String getNegozioAus() {
                return NegozioAus;
        }
        public void setNegozioAus(String negozioAus) {
                NegozioAus = negozioAus;
        }

}
Let Your Brain Run Away

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3487
  • Respect: +506
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Condividere dati tra Activity utilizzando un Application
« Risposta #5 il: 20 Ottobre 2010, 13:26:38 CEST »
+1
Manca una a nel android:name="Glob..."

Offline Sirio22

  • Utente junior
  • **
  • Post: 93
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S2
  • Sistema operativo:
    Windows 7/8.1
Re:Condividere dati tra Activity utilizzando un Application
« Risposta #6 il: 20 Ottobre 2010, 13:34:25 CEST »
0
giusto. scusatemi sono stato un po' imbranato cmq non funziona mettere due application deve essere unica non lo sapevo :-[
Let Your Brain Run Away