2014-08-28 245 views
5

我试图发布我的android应用程序创建与科尔多瓦,并发布时,我遵循所有步骤像android:debuggable =“false”甚至删除这条线作为其最新的建议,但问题是当我在我的模拟器中安装签名的版本版本我能够调试它...任何帮助?WebView.setWebContentsDebuggingEnabled(false),但我可以在安装已签名APK后调试代码

更新: -

按照建议我试图..

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); 
      } 
     } 
    } 
} 

在公共无效的onCreate(捆绑savedInstanceState){}

实测值这段代码在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 
      } 

但它仍然没有工作......我仍然能够调试html js fil es

+0

你如何调试旅游代码? – 2014-08-29 04:36:21

+0

通过镀铬设备工具 – Luckyy 2014-08-29 05:51:31

回答

0

你必须设置你的webview不可调试: WebView.setWebContentsDebuggingEnabled(false)。我已经检查:

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; 
      } 
     }); 
    } 

@SuppressLint("NewApi") 
public class OnlyForKitKat { 

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

} 

enter image description here

+1

试过如上....我粘贴了整个代码,它不工作 – Luckyy 2014-08-29 15:58:11

+0

chrome :: // inspect不显示调试页面。如果(0!=(getApplicationInfo()。flags = ApplicationInfo.FLAG_DEBUGGABLE)){? – 2014-08-29 17:34:26

+0

THANKs很多...但只是禁用条件并没有解决调试问题 – Luckyy 2014-08-29 18:13:20

1

有在你的代码中的错误。它无条件地启用在KitKat和更新的所有应用程序的WebView中进行调试,而不管应用程序是否标记为可调试。

0 != (getApplicationInfo().flags = ApplicationInfo.FLAG_DEBUGGABLE)实际上应该是0 != (getApplicationInfo().flags & ApplicationInfo.FLAG_DEBUGGABLE)

相关问题