美文网首页
weex解决安卓9.0etected problem with

weex解决安卓9.0etected problem with

作者: 李牧敲代码 | 来源:发表于2019-04-14 20:23 被阅读0次

用weex在android9.0上生成的app报如下图的错误


QQ图片20190414201505.png

用android studio打开android工程,找到如下图所示位置


image.png

补充一个方法然后调用即可。(tips:相应的包在android studio中可以通过选中用atl+enter导入)

package com.weex.app;

import android.app.Application;

import com.weex.app.extend.ImageAdapter;
import com.weex.app.extend.WXEventModule;
import com.alibaba.weex.plugin.loader.WeexPluginContainer;
import com.weex.app.util.AppConfig;
import com.taobao.weex.InitConfig;
import com.taobao.weex.WXSDKEngine;
import com.taobao.weex.common.WXException;
//导入相应的包
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class WXApplication extends Application {

  @Override
  public void onCreate() {
    //在此处调用
    closeAndroidPDialog();
    super.onCreate();
    WXSDKEngine.addCustomOptions("appName", "WXSample");
    WXSDKEngine.addCustomOptions("appGroup", "WXApp");
    WXSDKEngine.initialize(this,
        new InitConfig.Builder().setImgAdapter(new ImageAdapter()).build()
    );
    try {
      WXSDKEngine.registerModule("event", WXEventModule.class);
    } catch (WXException e) {
      e.printStackTrace();
    }
    AppConfig.init(this);
    WeexPluginContainer.loadAll(this);
  }
   //添加下面这个方法
  private void closeAndroidPDialog(){
    try {
      Class aClass = Class.forName("android.content.pm.PackageParser$Package");
      Constructor declaredConstructor = aClass.getDeclaredConstructor(String.class);
      declaredConstructor.setAccessible(true);
    } catch (Exception e) {
      e.printStackTrace();
    }
    try {
      Class cls = Class.forName("android.app.ActivityThread");
      Method declaredMethod = cls.getDeclaredMethod("currentActivityThread");
      declaredMethod.setAccessible(true);
      Object activityThread = declaredMethod.invoke(null);
      Field mHiddenApiWarningShown = cls.getDeclaredField("mHiddenApiWarningShown");
      mHiddenApiWarningShown.setAccessible(true);
      mHiddenApiWarningShown.setBoolean(activityThread, true);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

再次编译运行,即可发现那个错误提示框消失。


QQ图片20190414203440.gif

【完】

参考文献

https://www.jianshu.com/p/f87fe39caf1d?tdsourcetag=s_pctim_aiomsg

相关文章

网友评论

      本文标题:weex解决安卓9.0etected problem with

      本文链接:https://www.haomeiwen.com/subject/dxaswqtx.html