Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为使用ionic制作的android应用程序激活strictmode_Android_Cordova_Ionic Framework - Fatal编程技术网

为使用ionic制作的android应用程序激活strictmode

为使用ionic制作的android应用程序激活strictmode,android,cordova,ionic-framework,Android,Cordova,Ionic Framework,我正在使用ionic和cordova为android和ios构建一个移动应用程序。 我现在正在为它做QA,我想在android emulator的应用程序中使用strictmode,但我似乎找不到任何关于如何使用ionic打开它的文档 甚至有可能吗?框架:Cordova v。8.0.0 2019年4月:在撰写本文时,Cordova没有任何指令,也没有任何插件可用于启用Android StrictMode测试(要求PS-P2和PM-1)。此后,为了启用StrictMode,我选择手动修改我们的应用

我正在使用ionic和cordova为android和ios构建一个移动应用程序。 我现在正在为它做QA,我想在android emulator的应用程序中使用strictmode,但我似乎找不到任何关于如何使用ionic打开它的文档


甚至有可能吗?

框架:Cordova v。8.0.0

2019年4月:在撰写本文时,Cordova没有任何指令,也没有任何插件可用于启用Android StrictMode测试(要求PS-P2和PM-1)。此后,为了启用StrictMode,我选择手动修改我们的应用程序MainActivity.java

(1)MainActivity.java

  • 这是您默认的主要Android活动,作为启动Android应用程序的入口点。Cordova根据应用程序默认清单XML中的定义自动生成此java文件,该清单XML也是由Cordova自动生成的。默认情况下,不应修改此文件,因为Cordova可能会根据需要删除/重新生成它。但在这里,我们必须

  • 查找应用程序的此文件:[app cordova project dir]\platforms\android\app\src\main\java[app package dir]\MainActivity.java

  • 在MainActivity.java中,找到其主要方法:onCreate(),并添加以下代码以启用StrictMode。这必须包括所有必要的导入语句。不要跳过日志语句,这样您就可以监视并证明您的更改已打开。有关Android文档的详细信息,请参见下面的参考

     import android.os.StrictMode;
     import android.util.Log;
    
     public class MainActivity extends CordovaActivity {
         @Override
         public void onCreate(Bundle savedInstanceState) {
    
             //CODE-ADDED - Android StrictMode enabled
             Log.d("[MYAPPNAME]", "[MYAPPNAME].MainAtivity.onCreate() - STARTING. My StrictMode code is now ENABLED!");
             StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder()
                 .detectAll()
                 .detectDiskReads()
                 .detectDiskWrites()
                 .penaltyLog()
                 .build());
    
             StrictMode.setVmPolicy(new StrictMode.VmPolicy.Builder()
                .detectLeakedSqlLiteObjects()
                .detectLeakedClosableObjects()
                .penaltyLog()
                .build());
             //CODE-ADDED - End
    
             //The rest is Cordova default auto-generated syntax, leave it ALONE!
             super.onCreate(savedInstanceState);
             ... blableblo
         }
    }
    
  • 将整个MainActivity代码复制粘贴到临时文本文件(记事本等)上,以防Cordova删除/重新生成此文件,您可以参考备份代码,然后再次复制粘贴

(2)R.java

  • 这是Cordova通过其构建脚本自动生成的文件。默认情况下,不应修改此文件,因为Cordova可能会根据需要删除/重新生成它。但在这里,我们必须手动删除它。如果未删除此R文件,则Cordova生成脚本将忽略对MainActivity所做的任何更改

  • 查找应用程序的此文件:[app cordova project dir]\platforms\android\app\build\generated\source\r\debug[app package dir]\r.java

  • 删除这个文件

(3) 执行Cordova构建脚本以重新编译应用程序APK,并确保没有编译错误。这也应该重新生成R.java文件

(4) 将应用程序部署/安装到目标模拟器/设备,并像测试任何StrictMode违规一样测试应用程序,并对应用程序代码进行适当的修复

(5) 一旦全部完成并成功,您必须从MainActivity.java文件中删除StrictMode代码。不要让StrictMode为您的生产启用

REF:
Android StrictMode:

在.js文件顶部添加“use strict”。我希望这就是你所想的我不这么认为,我正试图获得这里概述的功能:在AVD中,爱奥尼亚正在构建inAh,好吧,我将它与javascript的严格模式混合。