Cerca con Google

Translate

18 febbraio 2013

Android 4.2.2 e App Inventor


Se siete tra i fortunati possessori di un device Nexus (ed io modestamente lo sono da un pò di tempo, prima un Galaxy Nexus, ora un Nexus 4)
ed avete aggiornato ad Android 4.2.2 avrete forse notato che App Inventor non si connette più correttamente al Blocks Editor.

Vediamo subito come risolvere la cosa in attesa del rilascio da parte del MIT del nuovo pacchetto di installazione che includerà i file aggiornati.


Per prima cosa dovete localizzare dove avete installato il vostro App Inventor, nel mio caso per esempio si trova in C:\Program Files\AppInventor\commands-for-Appinventor
Noterete l'esistenza di un file "adb.exe" che si occupa di far "dialogare" pc e telefono.
Ebbene, con la versione 4.2.2 di Android è stata inserita un'ulteriore sicurezza e quindi il vecchio file adb.exe non è più compatibile con questa versione di Jelly Bean.

Rechiamoci quindi a questo link: http://appinventor.mit.edu/download/adb-Windows.zip
e scarichiamo il file adb.exe aggiornato, estraiamolo e sostituiamolo al precedente (eventualmente chiudete App Inventor ed il Blocks Editor)

Al prossimo avvio del Blocks Editor, quando andremo a collegare il cellulare con cavetto usb (infatti se usate il collegamento wireless dovete aggiornare nulla) ci uscirà una nuova schermata di conferma del tipo di questa qui sotto:


Spuntate la casella "always allow from this computer" (in italiano dovrebbe essere "consenti sempre per questo computer o qualcosa del genere) e poi OK.

A questo punto tutto sarà risolto e potrete continuare a godervi il vostro Nexus ed anche App Inventor!!!


23 commenti:

  1. ciao sebastiano, scusa se la mia domanda non centra con l'argomento, ho visto su alcuni tuoi tutorial su app inventor ma non ricordo che numero, che usavi real vnc controllando il cellulare dal pc.. per favore mi puoi spiegare oltre a vnc per pc cosa devo scaricare e come?
    ti ringrazio anticipatamente.

    Francesco

    RispondiElimina
    Risposte
    1. Devi Installare droid vnc server sul telefono e vnc viewer sul PC
      Se tutti e due sono sulla stessa rete inserisci l'IP del Cell sul viewer e sei a posto
      è facilissimo

      Elimina
  2. infatti ci stavo provando proprio con droid vnc ma devo rifare il root, perchè mi chiede il root.
    cmq grazie mille sempre gentile.

    RispondiElimina
  3. Risposte
    1. per forza, me lo avete pagato voi frequentando il mio blog!!!!! (ah ah ah!!! scherzo! "purtroppo" forse mi potrei permettere un galaxy next se dovessi campare solo col blog :)
      cmq gran telefono, finora soddisfatto al 1000% :) lo consiglio a tutti!

      Elimina
  4. Ciao sebastiano, scusami se ti disturbo ancora, ho un problema, oggi ho aggiornato il mio galaxy note ad android 4.1.2 jelly beans e ora la mia applicazione fatta con app inventor da problemi nella visualizzazione.. mi spiego meglio: la mia app è stata fatta quando ancora non esisteva la possibilità in app inventor di usare il multiscreen quindi ho usato il sistema visibile/invisibile per nasconedere le varie pagine, adesso ogni qual volta clicco sul tasto indietro (tasto creato da me per ogni pagina)da una pagina all'altra mi mostra tutte le pagine sovrapposte quindi combina un macello sovrapponendo il contenuto di una pagina con l'altra e cosi via. ah dimenticavo prima di aggiornare a jelly beans provai anche a rifare il programma utilizzando il multiscreen ma per come deve funzionare il programma è necessario usare lo schermo unico con visibile/invisibile quindi devo trovare un altra soluzione anche perchè il programma devo consegnarlo ai miei colleghi e finchè non aggiornano il tel funziona ma se dovessero aggiornarlo sarebbe un casino.
    per il resto il programma funziona.
    grazie mille e scusami ancora

    RispondiElimina
    Risposte
    1. Ciao Francesco, non mi risulta che l'aggiornamento a JB 4.1.2 porti a questo tipo di problemi, anch'io nella mia app uso visible true/false per i vari arrangement ma non ho mai avuto problemi (pensa che ora gira anche su JB 4.2.2)
      Non so,hai provato a rigenerare l'apk? provato a vedere cosa succede da blocks editor con le finestre di watch sui flag del visible?
      non vorrei fosse un problema specifico dell'aggiornamento samsung, non hai altri colleghi con cellulari diversi con cui fare varie prove?
      Ripeto, non mi risulta ci siano questo tipo di problemi in JB e AI...

      Elimina
  5. Ciao sebastiano credo di aver capito il problema anche se non ho avuto il tempo materiale per verificare.

    in pratica il mio programma è stato ordinato e suddiviso da una serie di arrangiamenti orizzontali e verticali , quelli verticali principali li ho chiamati pagine e li ho settati tutti non visibile e poi vengono resi visibili al momento che si entra in quella pagina e tornano non visibili quando si esce dalla stessa. mentre i sottoarrangiamenti vert e orizz che ho messo per ordinare i pulsanti le label etc.
    sono settati sempre su visibili in quanto essi sono contenuti dalla pagina principale e quindi appaiono o scompaiono a seconda se la pagina che li contiene è visibile o meno. Bene credo che JB vuole che nel pulsante che torna alla pagina precedente oltre a mettere non visibile la pagina che si lascia probabilmente vuole che si settano non visibili anche i sottoarrangiamenti che ordinano i pulsanti per questo forse sovrappone i pulsanti di una pagina a quelli dell'altra.

    RispondiElimina
  6. questo fatto è molto strano perchè se io metto un arrangiamento verticale e lo chiamo pagina e al suo interno metto un altro arrangiamento verticale contenente un pulsante e questi ultimi due li setto visibili mentre l'arrangiamento pagina lo setto invisibile, sullo schermo del telefono non dovrei vedere nulla, mentre mi basterebbe rendere visibile pagina per visualizzare il pulsante. con ICS funziona a meraviglia, JB fa un casino.

    RispondiElimina
    Risposte
    1. sei sicuro di questo ? hai fatto qualche prova magari anche con l'emulatore?
      perchè mi sembra davvero strana questa cosa, la proverò anch'io ma non mi pare di aver visto un bug (perchè di bug si tratta) così evidente.
      Magari è l'implementazione per qualche motivo particolare sul tuo telefono specifico, per questo dico di provare con l'emulatore e altri tel,
      aggiornami sulle tue scoperte! io appena ho tempo provo a mia volta :)

      Elimina
  7. infatti è stranissima sta cosa, ho provato da zero a fare un programma che ha solo i pulsanti per passare da una pagina all altra e tornare indietro sempre con visibile non visibile e funziona alla perfezione sul tel., il fatto che mi fa girare le scatole è che fino ad android 4.0.4 funziona bene , poi android 4.1.2 rompe.. e uno dopo che ha perso tanto tempo per fare andare tutto a posto deve ricominciare da zero ad ogni eventuale aggiornamento. vabbe cmq appena ho un po di tempo cercherò di scoprire dove sta il problema. grazie mille.. poi ti farò sapere. ciao

    RispondiElimina
    Risposte
    1. non vorrei essere troppo presuntuso ma son quasi sicuro che ci sia un qualche piccolo errore nella tua app che poi crea quei problemi,dalle mie esperienze non c'è mai stato un cambiamento così radicale di comportamento dovuto alla versione android che si utilizza...:)
      prova a rivedere tutto con calma e secondo me riesci a risolvere!

      Elimina
  8. Ciao Sebastiano, grazie per tutto quello che fai, io ti ringrazio sempre anche con i clik ;-). Oggi ti chiedo se conosci un metodo per risolvere un mio piccolo problemino, ma credo di tanti, consistente nel fatto che non riesco a togliere le seguenti autorizzazioni "Memoria (Modifica o elimina contenuti scheda SD)" e "Chiamate telefoniche (Leggi stato telefono e identità)" dal mio file .apk, autorizzazioni che app inventor stesso inserisce di default nel file AndroidManifest.xml credo (sono riuscito solo a togliere l'autorizzazione di accesso ad internet).

    RispondiElimina
    Risposte
    1. Hai provato con marketizer a togliere dal manifest ad esempio queste:
      < uses-permission android:name="android.permission.INTERNET" />
      < uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
      < uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      si corre però il rischio che l'apk non funzioni più e crashi senza apparente motivo.
      Mi pareva di aver letto che AI inserisce tutte le permission possibili di tutti i blocchi a disposizione, anche se poi non li usiamo veramente.
      Però ho anche notato che di base, passandolo con Marketizer,alcune autorizzazioni vengono tolte,puoi provare a togliere le altre a mano (ovvio che se togli INTERNET la tua app sarà solo offline e il componente web per esempio mandera in crash l'app...)

      Elimina
    2. La mia app non utilizza internet, wifi e network (infatti, manualmente, nell'AndroidManifest.xml ho tolto le uses-permission android che tu hai mensionato che sono le uniche che aggiunge app inventor nella creazione del file apk; installando l'app rimangono attive però le seguenti autorizzazioni: "Memoria (Modifica o elimina contenuti scheda SD)" e "Chiamate telefoniche (Leggi stato telefono e identità)" (io le visualizzo sul mio smartphone andando in Impostazioni -> Applicazioni -> Gestisci applicazioni -> poi clicco sulla mia app e le visualizzo in fondo alla schermata nella sottosezione "Autorizzazioni"), che vorrei togliere ma non so come fare (possono dar fastidio a chi scarica e installa l'app e poi si accorge di averle attive anche se poi la mia app non le utilizza). Grazie sempre per il tuo impegno. Sergio

      Elimina
    3. Credo che quelle non possano essere tolte perchè in qualche modo sono collegate a dei componenti che usa App Inventor e noi non ci possiamo fare nulla,
      se nel manifest togli tutte le uses-permission e ancora ti da la richiesta per quelle autorizzazioni purtroppo credo ci sia poco da fare.
      Io ad esempio nel play store developer vedo che la mia app richiede le seguenti autorizzazioni:
      android.permission.INTERNET
      android.permission.READ_EXTERNAL_STORAGE
      android.permission.READ_PHONE_STATE
      android.permission.WRITE_EXTERNAL_STORAGE
      che come hai notato anche te sono diverse da quelle del manifest...
      misteri che onestamente non saprei come risolvere???
      però ti do ragione sul fatto che uno potrebbe sospettare di un app offline che voglia accedere allo stato telefonico
      se trovo qualcosa ti faccio sapere, ok?

      Elimina
    4. Fino a questo momento su internet non ho trovato nulla, secondo me si devono chiedere informazioni direttamente al MIT! Sebastiano, tu hai trovato qualcosa? A presto. Sergio

      Elimina
    5. Puoi provare a postare la tua domanda nel gruppo google ufficiale per App Inventor:
      https://groups.google.com/forum/?hl=it&fromgroups=#!forum/app-inventor-open-source-dev

      Elimina
  9. Questo commento è stato eliminato dall'autore.

    RispondiElimina
    Risposte
    1. penso che tu abbia commesso qualche errore perchè la cosa non è assolutamente normale,
      ti consiglio di provare a fare un app semplice, magari con un solo pulsante e/o una sola immagine e provare a creare l'apk e installare questa app.
      Oppure scaricare uno dei miei sorgenti e provare con quelli, se non va potrebbe essere (ma è la prima volta che la sento) un problema di compatibilità tra AI e il tuo telefono.
      Puoi anche provare con l'emulatore per vedere se il tuo progetto è a posto.

      Elimina
    2. Io ho provato a fare l'esempio "Paint Pot" dei tutorial di App Inventor e quando provo a scattare una foto (che dovrebbe diventare il nuovo sfondo) non ottengo nessun effetto.
      Questo è qualcosa di simile al tuo problema?
      Io ho un Samsung Galaxy Note con Android 4.0.4.
      Ciao
      Fulvio

      Elimina
    3. Ciao Fulvio, non credo sia legato al problema dell'utente AXD96,
      purtroppo i samsung hanno una personalizzazione molto pesante di Android, può darsi che il componente imagepicker non sia compatibile con la touchwiz samsung, mi dispiace
      (ti consiglio di provare a chiedere nel forum se altri che hanno smartphone samsung hanno lo stesso problema)

      Elimina