2014-08-28 6 views
5

Sto tentando di pubblicare la mia app Android creata con cordova e durante la pubblicazione ho seguito tutti i passaggi come Android: debuggable = "false" o anche rimuovendo questa linea come l'ultimo suggerimento, ma il problema è quando installo la versione di build firmata nel mio emulatore, sono in grado di eseguirne il debug ... qualche aiuto?WebView.setWebContentsDebuggingEnabled (false) ma sono in grado di eseguire il debug del codice dopo aver installato l'APK firmato

Aggiornamento: -

Come da suggerimento che ho provato ..

public class appname extends CordovaActivity 
{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     super.init(); 
     super.loadUrl(Config.getStartUrl()); 
     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){ 
      if(0 != (getApplicationInfo().flags = ApplicationInfo.FLAG_DEBUGGABLE)){ 
       //Log.i("Your app", "Disable web debugging"); 
       WebView.setWebContentsDebuggingEnabled(false); 
      } 
     } 
    } 
} 

in public void onCreate (Bundle savedInstanceState) {}

Trovato questo pezzo di codice in CordovaWebView.java

if((appInfo.flags & ApplicationInfo.FLAG_DEBUGGABLE) != 0 && 
       android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) 
      { 
       setWebContentsDebuggingEnabled(true); // I tried setting this false as well 
      } 

Ma non funziona ancora ... riesco ancora a eseguire il debug di html js fil es

+0

Come stai codice di debuggin tour? –

+0

Attraverso lo strumento dei dispositivi chrome – Luckyy

risposta

0

Devi impostare la tua webview non debuggable: WebView.setWebContentsDebuggingEnabled(false). Ho controllato:

public class HTML5Application extends CordovaActivity 
{ 
    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     //webView.setWebChromeClient(new WebChromeClient()); 
     super.onCreate(savedInstanceState); 
     super.init(); 
     // Set by <content src="index.html" /> in config.xml 
     super.loadUrl(Config.getStartUrl()); 
     //super.loadUrl("file:///android_asset/www/index.html") 

     if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT){ 
      Log.i("xxxxxx", "Enabling web debugging"); 
      OnlyForKitKat.enableWebViewDebugging(); 
     } 

     appView.setOnKeyListener(new OnKeyListener() { 
      @Override 
      public boolean onKey(View v, int keyCode, KeyEvent event) { 
       if (keyCode == KeyEvent.KEYCODE_BACK) return true; 
       return false; 
      } 
     }); 
    } 

e

@SuppressLint("NewApi") 
public class OnlyForKitKat { 

    public static void enableWebViewDebugging() { 
     WebView.setWebContentsDebuggingEnabled(false); 
    } 

} 

enter image description here

+1

Ho provato come sopra .... Ho incollato l'intero codice, non funziona – Luckyy

+0

chrome :: // inspect non mostra la pagina di debug. Puoi disabilitare la condizione se (0! = (GetApplicationInfo(). Flags = ApplicationInfo.FLAG_DEBUGGABLE)) {? –

+0

Grazie mille ... ma la disabilitazione della condizione non ha risolto il problema di debug – Luckyy

1

C'è un bug nel codice. Abilita incondizionatamente il debug in tutte le WebView di app su KitKat e versioni successive, indipendentemente dal fatto che l'app sia contrassegnata come debugabile.

0 != (getApplicationInfo().flags = ApplicationInfo.FLAG_DEBUGGABLE) in realtà dovrebbe essere 0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE).

Problemi correlati