Autore Topic: [GIOCO] Briscola  (Letto 3263 volte)

Offline undead

  • Utente senior
  • ****
  • Post: 666
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
[GIOCO] Briscola
« il: 12 Maggio 2014, 19:30:29 CEST »
Ciao a tutti,

in fase di testing mi sono stati segnalati due errori gravi.

Se qualcuno fosse così cortese da aiutarmi gli sarei molto grato.

In breve ho bisogno di qualcuno con un device android 2.3.3-2.3.6 che scarichi la app della briscola e mi dica se gli parte. Niente honeycomb, ics, jelly bean.

Questo il link: http://play.google.com/store/apps/details?id=net.drkappa.game.briscola

Se vi crasha potete mandare la segnalazione? Grazie!

ps visto che siamo in un forum di sviluppatori fornisco i dettagli tecnici del problema, casomai aveste lo stesso problema che ho io.

Nel logcat inviatomi non ho eccezioni, di fatto la app crasha prima di partire.

Gli unici E/ che ho sono E/dalvikvm che riguardano il linking delle classi.
Ci sono poi altri E/ che non mi riguardano direttamente (spesso basta attaccare il telefono al pc e guardarsi il logcat e ci sono E/ di sistema più o meno ovunque).

In pratica utilizzo due funzionalità che richiedono rispettivamente honeycomb e jelly bean: il preserveglcontext che richiede honeycomb e il wifip2p/wifidirect che richiedono jelly bean.

L'errore, facilmente intuibile, è che dalvik non riesce a linkare i metodi di queste classi, non crea le classi che li usano quindi all'avvio appena trova un riferimento a quelle classi mi va in crash.

Colpa mia? Insomma... tutti gli accessi a quelle classi sono incapsulati dentro degli "IF". In sistemi operativi PRE-FROYO dalvik fa una verifica statica, da FROYO la deve fare dinamica. Poichè la app è API 10+ a casa mia se non uso quelle funzioni o quelle classi e faccio un test sulla versione del sistema operativo LA APP NON DEVE CRASHARE.

Vedasi questo link:

dalvik - Is checking SDK_INT enough or is lazy loading needed for using newer android APIs ? Why? - Stack Overflow

Grazie!

Post unito: 12 Maggio 2014, 19:39:01 CEST
EDIT:

visto che la regola, peraltro più che giusta, è logcat or GTFO.. aggiungo il logcat ma secondo me è inutile.

Citazione
05-12 15:17:56.796 E/dalvikvm( 2465): Could not find class 'net.drkappa.tyche.network.z', referenced from method net.drkappa.tyche.network.s.d
05-12 15:17:56.796 W/dalvikvm( 2465): VFY: unable to resolve new-instance 3067 (Lnet/drkappa/tyche/network/z;) in Lnet/drkappa/tyche/network/s;
05-12 15:17:56.796 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:56.796 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:56.804 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:56.804 W/dalvikvm( 2465): VFY: unable to resolve virtual method 21217: Lnet/drkappa/tyche/network/z;.o ()V
05-12 15:17:56.804 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:56.804 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:56.804 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:56.804 W/dalvikvm( 2465): VFY: unable to resolve virtual method 21215: Lnet/drkappa/tyche/network/z;.m ()V
05-12 15:17:56.804 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:56.804 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:56.812 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:56.812 W/dalvikvm( 2465): VFY: unable to resolve virtual method 21216: Lnet/drkappa/tyche/network/z;.n ()V
05-12 15:17:56.812 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:56.812 W/dalvikvm( 2465): VFY: unable to find class referenced in signature (Lnet/drkappa/tyche/network/z;)
05-12 15:17:56.812 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:56.820 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:56.820 W/dalvikvm( 2465): VFY: unable to find class referenced in signature (Lnet/drkappa/tyche/network/z;)
05-12 15:17:56.851 W/dalvikvm( 2465): VFY: unable to resolve instance field 37
05-12 15:17:56.859 W/dalvikvm( 2465): VFY: unable to resolve virtual method 19: Landroid/app/Activity;.getFragmentManager ()Landroid/app/FragmentManager;
05-12 15:17:57.171 W/dalvikvm( 2465): VFY: unable to resolve virtual method 1584: Landroid/content/Context;.registerComponentCallbacks (Landroid/content/ComponentCallbacks;)V
05-12 15:17:57.203 W/dalvikvm( 2465): VFY: unable to resolve virtual method 1596: Landroid/content/Context;.unregisterComponentCallbacks (Landroid/content/ComponentCallbacks;)V
05-12 15:17:57.406 W/dalvikvm( 2465): VFY: unable to resolve static method 3712: Landroid/webkit/WebSettings;.getDefaultUserAgent (Landroid/content/Context;)Ljava/lang/String;
05-12 15:17:57.445 W/dalvikvm( 2465): VFY: unable to resolve virtual method 3727: Landroid/webkit/WebSettings;.setMediaPlaybackRequiresUserGesture (Z)V
05-12 15:17:57.445 W/dalvikvm( 2465): VFY: unable to resolve virtual method 3477: Landroid/view/View;.setLayerType (ILandroid/graphics/Paint;)V
05-12 15:17:57.445 W/dalvikvm( 2465): VFY: unable to resolve virtual method 3477: Landroid/view/View;.setLayerType (ILandroid/graphics/Paint;)V
05-12 15:17:57.679 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:57.679 W/dalvikvm( 2465): VFY: unable to find class referenced in signature (Lnet/drkappa/tyche/network/z;)
05-12 15:17:57.679 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:57.679 W/dalvikvm( 2465): VFY: unable to resolve virtual method 21195: Lnet/drkappa/tyche/network/z;.a ()Ljava/lang/String;
05-12 15:17:57.679 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:57.679 W/dalvikvm( 2465): VFY: unable to find class referenced in signature (Lnet/drkappa/tyche/network/z;)
05-12 15:17:57.687 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:57.687 W/dalvikvm( 2465): VFY: unable to find class referenced in signature (Lnet/drkappa/tyche/network/z;)
05-12 15:17:57.687 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:57.687 W/dalvikvm( 2465): VFY: unable to resolve virtual method 21226: Lnet/drkappa/tyche/network/z;.u ()V
05-12 15:17:57.695 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:57.695 W/dalvikvm( 2465): VFY: unable to find class referenced in signature (Lnet/drkappa/tyche/network/z;)
05-12 15:17:57.695 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:57.695 W/dalvikvm( 2465): VFY: unable to resolve virtual method 21214: Lnet/drkappa/tyche/network/z;.l ()V
05-12 15:17:57.734 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:57.734 W/dalvikvm( 2465): VFY: unable to find class referenced in signature (Lnet/drkappa/tyche/network/z;)
05-12 15:17:57.734 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:57.734 W/dalvikvm( 2465): VFY: unable to resolve virtual method 21226: Lnet/drkappa/tyche/network/z;.u ()V
05-12 15:17:57.734 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:57.734 W/dalvikvm( 2465): VFY: unable to find class referenced in signature (Lnet/drkappa/tyche/network/z;)
05-12 15:17:57.734 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:57.742 W/dalvikvm( 2465): VFY: unable to resolve virtual method 21201: Lnet/drkappa/tyche/network/z;.a (Lnet/drkappa/tyche/network/y;)Z
05-12 15:17:57.742 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:57.742 W/dalvikvm( 2465): VFY: unable to find class referenced in signature (Lnet/drkappa/tyche/network/z;)
05-12 15:17:57.742 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:57.742 W/dalvikvm( 2465): VFY: unable to resolve virtual method 21221: Lnet/drkappa/tyche/network/z;.p ()I
05-12 15:17:57.742 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:57.742 W/dalvikvm( 2465): VFY: unable to find class referenced in signature (Lnet/drkappa/tyche/network/z;)
05-12 15:17:57.757 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:57.765 W/dalvikvm( 2465): VFY: unable to find class referenced in signature (Lnet/drkappa/tyche/network/z;)
05-12 15:17:57.765 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:57.765 W/dalvikvm( 2465): VFY: unable to resolve virtual method 21221: Lnet/drkappa/tyche/network/z;.p ()I
05-12 15:17:57.765 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:57.765 W/dalvikvm( 2465): VFY: unable to find class referenced in signature (Lnet/drkappa/tyche/network/z;)
05-12 15:17:57.765 W/dalvikvm( 2465): Link of class 'Lnet/drkappa/tyche/network/z;' failed
05-12 15:17:57.765 W/dalvikvm( 2465): VFY: unable to resolve virtual method 21205: Lnet/drkappa/tyche/network/z;.c ()Z
05-12 15:17:57.820 W/dalvikvm( 2465): Link of class 'Lcom/google/android/gms/internal/gd$b;' failed
05-12 15:17:57.820 E/dalvikvm( 2465): Could not find class 'com.google.android.gms.internal.gd$b', referenced from method com.google.android.gms.internal.gd.a
05-12 15:17:57.820 W/dalvikvm( 2465): VFY: unable to resolve new-instance 1786 (Lcom/google/android/gms/internal/gd$b;) in Lcom/google/android/gms/internal/gd;
05-12 15:17:57.843 W/GmsClientEvents( 2465): registerConnectionCallbacks(): listener com.google.example.games.basegameutils.a@405707f8 is already registered
05-12 15:17:57.843 W/GmsClientEvents( 2465): registerConnectionFailedListener(): listener com.google.example.games.basegameutils.a@405707f8 is already registered
05-12 15:17:57.953 W/dalvikvm( 2465): VFY: unable to resolve instance field 881
« Ultima modifica: 12 Maggio 2014, 19:39:02 CEST da undead, Reason: Merged DoublePost »

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:[GIOCO] Briscola
« Risposta #1 il: 13 Maggio 2014, 09:26:14 CEST »
mm mio padre ha un galaxy S con gb, giovedi sera se mi ricordo provo.
Dal logcat però pare che la classe nel package Z non ci sia per dispositivi GB e quindi non la trova (non verrà usata ma è comunque referenziata). Per l'errore in basso ho paura che sia un errore dei play services... usi l'ultima versione vero?
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline undead

  • Utente senior
  • ****
  • Post: 666
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:[GIOCO] Briscola
« Risposta #2 il: 13 Maggio 2014, 10:16:01 CEST »
mm mio padre ha un galaxy S con gb, giovedi sera se mi ricordo provo.
Dal logcat però pare che la classe nel package Z non ci sia per dispositivi GB e quindi non la trova (non verrà usata ma è comunque referenziata). Per l'errore in basso ho paura che sia un errore dei play services... usi l'ultima versione vero?
Si esattamente, la classe usata nel package Z è disponibile da API 14 in poi.
Il fatto è che come riporta il link in fase di verifica se tu non usi la classe dovrebbe funzionare. Non la uso mai direttamente ma sempre attraverso altre classi quindi a rigor di logica dovrebbe funzionare.. no?

Per renderti l'idea di quello che sto dicendo ti prendo come esempio l'altra chiamata che è disponibile da honeycomb in poi.

05-12 15:17:56.765 W/dalvikvm( 2465): VFY: unable to resolve virtual method 20625: Lnet/drkappa/tyche/core/TCBaseGLSurfaceView;.setPreserveEGLContextOnPause (Z)V

Questo è wrappato su un IF che se supportato mi preserva il contesto EGL quando l'app viene messa in pausa. In dispositivi pre-honeycomb quando la app va in pausa tutte le texture, gli oggetti e così via vengono distrutti e vanno ricreati al riavvio.

Se guardi il logcat ti accorgi che a parte quello che ho evidenziato è tutto segnalato come warning. Il che è perfettamente normale perchè sono API non supportate che però non vengono mai usate.

Il dubbio sta in network.s che non può essere istanziata perchè nel metodo d utilizzo la classe z che è quella che genera gli warning.
A differenza di quanto faccio nella glsurfaceview dove chiamo un metodo in quella istanzio una classe.

Codice (Java): [Seleziona]
if( Build.VERSION.SDK_INT < 14 )
return false;
m_WifiP2P = new TCWifiP2pNetworkModule(m_Engine);
return true;
TCWifiP2pNetworkModule è la classe Z. questo è il metodo D della classe S.
A rigor di logica io supporrei che in mancanza di API 14+ il resto del codice venga saltato e che quindi sia del tutto lecito. Apparentemente in fase di verifica si accorge che la classe Z non è istanziabile e mi da quell'unico errore nel logcat (perchè gli warning sono previsti).

Se il problema è questo credo che l'unica soluzione sia quella di creare una classe base, derivarci la classe Z, utilizzare qualche tipo di factory pattern in modo da non esporre mai direttamente la classe Z alla classe S.

Per il play services si, uso l'ultima versione.  ;-)

Offline Nicola_D

  • Utente storico
  • *****
  • Post: 2479
  • SBAGLIATO!
    • Github
    • Google+
    • nicoladorigatti
    • Mostra profilo
  • Dispositivo Android:
    Nexus 6p, Nexus 4, Nexus S, Nexus 7(2012)
  • Sistema operativo:
    Windows 7
Re:[GIOCO] Briscola
« Risposta #3 il: 13 Maggio 2014, 10:42:44 CEST »
mah, non credo sia necessario fare factory pattern, io farei una prova localmente con genymotion.
Ti tiri su un device Gingerbread e vedi che ti succede li. Anche se non vedi le texture fregatene, è solo perchè genymotion wrappa le chiamate OpenGLes a chiamate OpenGL del pc solo se supportate (ho chiesto info al team).
IMPORTANTE:NON RISPONDO A PROBLEMI VIA MESSAGGIO PRIVATO
LOGCAT: Non sai cos'è? -> Android Debug Bridge | Android Developers
               Dov'è in Eclipse? -> Window -> Open Prospective -> DDMS e guarda in basso!
[Obbligatorio] Logcat, questo sconosciuto! (Gruppo AndDev.it LOGTFO) - Android Developers Italia

Offline undead

  • Utente senior
  • ****
  • Post: 666
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:[GIOCO] Briscola
« Risposta #4 il: 13 Maggio 2014, 14:03:09 CEST »
io farei una prova localmente con genymotion.
Su questo pc non va.. vbox mi da errore sulla virtualizzazione hardware, come se non ci fosse. Provo su un altro stasera... mah.  :D

Offline arlabs

  • Utente normale
  • ***
  • Post: 430
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:[GIOCO] Briscola
« Risposta #5 il: 14 Maggio 2014, 14:40:33 CEST »
Con 2.3.6 parte, ho però un crash in uscita applicazione (ti ho inviato il rapporto).

Ho però rifiutato il login con l'account google per il multiplayer...
Inoltre nel logcat, durante il lancio, ho trovato queste linee (in allegato)

Ciao.

Offline undead

  • Utente senior
  • ****
  • Post: 666
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:[GIOCO] Briscola
« Risposta #6 il: 14 Maggio 2014, 19:07:58 CEST »
Grazie mille per tutto, per il test, il rapporto e l'allegato!

A questo punto mi sento di escludere al 99,99% che l'errore segnalatomi all'avvio fosse relativo a un problema su gingerbread.
Su genymotion funziona, sul device di arlabs funziona, da specifiche funziona. Nicola_D se ti ricordi di fare una prova quando puoi almeno abbiamo la riprova definitiva.

In pratica a futura memoria si può affermare quasi con certezza che da froyo incluso in poi i crash avvengono solo quando effettivamente si utilizza una classe o un metodo presente solo in API superiori. Se si usa implements (e forse extends) viene generato un errore che può comunque essere ignorato. Altrimenti sono solo warnings.

Sempre a scopo di "futura memoria" l'errore che riporta arlabs nell'attach l'ho visto fin dall'inizio, su qualsiasi tipo di device l'abbia testato.
Mi sono preoccupato molto, anche se i banner mi funzionavano. Girando in rete è venuto fuori che nessuno sa bene perchè sia segnalato, ma a tutti funziona correttamente.

Infatti hanno dovuto mettere una FAQ apposita... vedi link: https://developers.google.com/mobile-ads-sdk/kb/#resourcesnotfound

Se un colosso come google fa queste cose... figuriamoci se non possiamo sbagliare noi  :-P

Infine per quanto riguarda la segnalazione, escludendo che tu me l'abbia inviata alle 4 del mattino e supponendo che sia più o meno coincidente alla data del tuo post, la riporto qui:

Citazione
java.lang.NullPointerException
at com.google.android.gms.common.ConnectionResult.startResolutionForResult(Unknown Source)
at com.google.example.games.basegameutils.a.z(SourceFile:856)
at com.google.example.games.basegameutils.a.onConnectionFailed(SourceFile:832)
at com.google.android.gms.internal.ei.a(Unknown Source)
at com.google.android.gms.common.api.b.dy(Unknown Source)
at com.google.android.gms.common.api.b.d(Unknown Source)
at com.google.android.gms.common.api.b$4.onConnectionFailed(Unknown Source)
at com.google.android.gms.internal.ei.a(Unknown Source)
at com.google.android.gms.internal.eh$h.b(Unknown Source)
at com.google.android.gms.internal.eh$h.a(Unknown Source)
at com.google.android.gms.internal.eh$b.ec(Unknown Source)
at com.google.android.gms.internal.eh$a.handleMessage(Unknown Source)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)
at dalvik.system.NativeStart.main(Native Method)

Sono tutti crash relativi alla libreria basegameutils di google (!!!) per il gioco online.
Vedo qua ( android - GameHelper crashes on onConnectionFailed() - Stack Overflow ) che stanno facendo aggiornamenti per risolvere questo problema, proverò a verificare se è uscita una nuova versione della libreria. L'errore è esattamente quello, io ho l'altro metodo sotto proguard e ho una versione più recente ma le prime tre righe sembrano quelle.

Grazie ancora a tutti e due...  :-)

Offline eagledeveloper

  • Translate Team
  • Utente senior
  • ****
  • Post: 516
    • Google+
    • 347516210
    • dark_pinz
    • @WandDStudios
    • Mostra profilo
    • W&D Studios
  • Dispositivo Android:
    HTC One X e HTC One
  • Play Store ID:
    W%26D+Studios
  • Sistema operativo:
    Ubuntu / Windows 7
Re:[GIOCO] Briscola
« Risposta #7 il: 15 Maggio 2014, 07:30:19 CEST »
Ieri mi è uscito un pop up per votare l'applicazione. Mica google aveva stretto le policy e non si poteva piu' fare?
I numeri contano molto di più del seme.

Offline undead

  • Utente senior
  • ****
  • Post: 666
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:[GIOCO] Briscola
« Risposta #8 il: 15 Maggio 2014, 08:58:49 CEST »
Ieri mi è uscito un pop up per votare l'applicazione. Mica google aveva stretto le policy e non si poteva piu' fare?
Credo tu ti riferisca a questo punto.

Citazione
•La promozione o l'installazione di stratagemmi che causano il reindirizzamento a Google Play o il download dell'app senza l'azione consapevole dell'utente.


In inglese:

Citazione
•Promotion or install tactics which cause redirection to Google Play or the download of the app without informed user action.

In inglese è più chiaro il fatto che la "informed user action" si applica ad entrambi. Tutto ruota attorno a quello. Non è vietata la promozione o la tattica sono vietate le promozioni o le tattiche che non prevedono una azione consapevole dell'utente.

Prima di rilasciarla ci ho pensato per un pò e l'unico motivo per il quale potrei avere problemi è che benchè la dialog faccia esplicito riferimento al voto sullo store il bottone che fisicamente redireziona l'utente riporta la dicitura "mi piace" e non "vota".
Ma se nel prossimo update metto sul bottone la scritta "vota"/"rate" l'azione dell'utente è per forza una "informed user action"... ci sarebbe scritto ben due volte nello stesso popup!

Visto che sto mettendo mano anche all'altra credo che renderò il tutto più esplicito.

Sempre sul discorso delle tattiche, nel menu ci sono due elementi cliccabili. Essendo elementi di sfondo sono poco visibili. L'asso di picche del menu principale e il device con un'altra mia app nella sezione multiplayer.

La prima redireziona al sito modiano.it la seconda redireziona ad una mia app sullo store.

Se alla pressione dell'elemento redirezionassi sarebbe una palese violazione della policy.

Invece alla pressione dell'elemento appare un popup esplicito:
"vuoi visitare il sito modiano.it?" Annulla/OK
"vuoi scaricare la app gratuita tal dei tali?" Annulla/OK

 :-)