From fdcfe6ef562cc3e8bbd6fcf2faedfbd9571f4490 Mon Sep 17 00:00:00 2001 From: hxb <hxb@hdlchina.com.cn> Date: 星期一, 01 四月 2024 14:33:42 +0800 Subject: [PATCH] 解决小程序白屏的问题 --- app/src/main/res/anim/dcloud_unimp_close_exit.xml | 17 +--- app/src/main/res/values/styles.xml | 4 app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java | 33 ++++++-- app/src/main/res/layout/activity_splash.xml | 8 ++ app/src/main/res/values/themes.xml | 2 app/src/main/AndroidManifest.xml | 1 app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java | 27 +++++- app/src/main/res/anim/dcloud_unimp_host_open_enter.xml | 19 ++-- app/src/main/java/com/hdl/photovoltaic/HDLApp.java | 9 ++ app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java | 8 + app/src/main/res/anim/dcloud_unimp_open_enter.xml | 18 +--- build.gradle | 13 +++ app/src/main/res/anim/dcloud_unimp_host_close_exit.xml | 19 +--- app/src/main/java/com/hdl/photovoltaic/uni/MySplashView.java | 35 ++++++++ app/build.gradle | 8 + 15 files changed, 156 insertions(+), 65 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 8612b31..a125b6e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -28,14 +28,14 @@ defaultConfig { applicationId "com.hdl.photovoltaic" minSdk 23 - targetSdk 30 + targetSdk 28 versionCode 1 versionName "1.3.1"//鐗堟湰瑙勫垯1.3鏄骇鍝佸姛鑳借凯浠g敤鐨�,鏈�鍚庝竴浣�0鏄垜浠慨澶峛ug鐢ㄧ殑 testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled true manifestPlaceholders = mfph ndk { - abiFilters 'x86', 'armeabi-v7a', "arm64-v8a" //涓嶆敮鎸乤rmeabi + abiFilters 'armeabi-v7a', "arm64-v8a" //涓嶆敮鎸乤rmeabi } manifestPlaceholders = [ @@ -62,6 +62,10 @@ ] } + // 淇濊瘉鍏朵粬鐨刲ib娌℃湁琚玴reDex + dexOptions { + preDexLibraries = false + } repositories { flatDir { dirs 'libs' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index bdce55a..f0e4c06 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -144,6 +144,7 @@ android:exported="false" /> <activity android:name=".ui.MyPowerStationActivity" + android:theme="@style/DCloudMPHostActivityTheme" android:exported="false" /> <activity android:name=".ui.HomeLoginActivity" diff --git a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java index 6622578..4b6c7f4 100644 --- a/app/src/main/java/com/hdl/photovoltaic/HDLApp.java +++ b/app/src/main/java/com/hdl/photovoltaic/HDLApp.java @@ -1,9 +1,12 @@ package com.hdl.photovoltaic; import android.app.Application; +import android.content.Context; import android.content.Intent; import android.text.TextUtils; + +import androidx.multidex.MultiDex; import com.hdl.hdlhttp.HxHttpConfig; import com.hdl.linkpm.sdk.HDLLinkPMSdk; @@ -311,4 +314,10 @@ HdlLogLogic.print("娴嬭瘯Mqtt杩炴帴鏈嶅姟绔け璐�--->"); } } + + @Override + protected void attachBaseContext(Context base) { + MultiDex.install(base); + super.attachBaseContext(base); + } } diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java index dbeacb9..2c34460 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/CPowerStationActivity.java @@ -5,7 +5,10 @@ import android.os.Process; import android.os.SystemClock; import android.text.TextUtils; +import android.util.Log; + +import androidx.annotation.Nullable; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; @@ -84,11 +87,25 @@ } @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); +// setTheme(R.style.NoAnimationTheme); + } + + @Override protected void onResume() { super.onResume(); //鍚姩椤典笌mainActivity鏍峰紡涓�鏍凤紝杩欐牱鍚姩椤靛拰mainActivity鐪嬩笂鍘绘槸涓�涓晫闈紝鐩殑鏄负浜唌ainActivity閬綇涓嬩竴椤碉紱 - AppManagerUtils.getAppManager().finishActivity(StartActivity.class); +// AppManagerUtils.getAppManager().finishActivity(StartActivity.class); this.portConflictDialog(); + } + public void startAppAutomaticallyOpenUni() { + //浣庝簬瀹夊崜14鐗堟湰 + if (android.os.Build.VERSION.SDK_INT < 34) { + startAppAutomaticallyOpenUni(false); + } else { + startAppAutomaticallyOpenUni(true); + } } @Subscribe(threadMode = ThreadMode.MAIN) @@ -176,11 +193,15 @@ } } + /** * C绔惎鍔ˋpp鑷姩鎵撳紑灏忕▼搴忕數绔欒鎯呯晫闈� */ - private void startAppAutomaticallyOpenUni() { + private void startAppAutomaticallyOpenUni(boolean delay) { + if(delay) { + SystemClock.sleep(2000); + } List<HouseIdBean> HouseIdList = HdlResidenceLogic.getInstance().getHouseIdList(); if (HouseIdList.size() == 0) { String path = HDLUniMP.UNI_EVENT_OPEN_HOME_Null_C; @@ -198,8 +219,6 @@ String path = HDLUniMP.UNI_EVENT_OPEN_HOME_DETAILS_C + "?homeId=" + houseIdBean.getHomeId() + "&homeName=" + houseIdBean.getHomeName() + "&powerStationStatus=" + houseIdBean.getPowerStationStatus(); HdlUniLogic.getInstance().openUniMP(path, null); } - - } // /** diff --git a/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java b/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java index a11ab05..976caa2 100644 --- a/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java +++ b/app/src/main/java/com/hdl/photovoltaic/ui/StartActivity.java @@ -3,6 +3,10 @@ import android.content.Intent; import android.os.Bundle; +import android.os.SystemClock; +import android.util.Log; + +import androidx.annotation.Nullable; import com.hdl.linkpm.sdk.core.exception.HDLException; import com.hdl.linkpm.sdk.user.HDLLinkPMUser; @@ -11,10 +15,12 @@ import com.hdl.photovoltaic.config.AppConfigManage; import com.hdl.photovoltaic.config.UserConfigManage; import com.hdl.photovoltaic.listener.CloudCallBeak; +import com.hdl.photovoltaic.other.HdlLogLogic; import com.hdl.photovoltaic.other.HdlResidenceLogic; import com.hdl.photovoltaic.other.HdlUniLogic; import com.hdl.photovoltaic.ui.bean.HouseIdBean; import com.hdl.photovoltaic.uni.HDLUniMP; +import com.hdl.photovoltaic.uni.HDLUniMPSDKManager; import java.util.List; @@ -52,8 +58,7 @@ intent.setClass(StartActivity.this, CPowerStationActivity.class); } - startActivity(intent); -// finish(); + openActivity(intent); } @Override @@ -67,20 +72,32 @@ //C绔敤鎴疯烦杞晫闈� intent.setClass(StartActivity.this, CPowerStationActivity.class); } - startActivity(intent); -// finish(); + openActivity(intent); } }); } else { Intent intent = new Intent(); intent.setClass(this, HomeLoginActivity.class); - startActivity(intent); - finish(); + openActivity(intent); } - - } + void openActivity(Intent intent) { + intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); + startActivity(intent); + finish(); + } + @Override + protected void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setTheme(R.style.NoAnimationTheme); + } + + @Override + protected void onDestroy() { + super.onDestroy(); + overridePendingTransition(0, 0); + } } \ No newline at end of file diff --git a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java index 6f5b2e7..b6119cf 100644 --- a/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java +++ b/app/src/main/java/com/hdl/photovoltaic/uni/HDLUniMPSDKManager.java @@ -3,6 +3,7 @@ import android.app.Application; import android.content.Context; import android.os.Environment; +import android.os.SystemClock; import android.text.TextUtils; @@ -279,14 +280,19 @@ UniMPOpenConfiguration uniMPOpenConfiguration = new UniMPOpenConfiguration(); uniMPOpenConfiguration.path = path; uniMPOpenConfiguration.extraData = jsonObject; + uniMPOpenConfiguration.splashClass=MySplashView.class; uniMP = DCUniMPSDK.getInstance().openUniMP(mContext, uniAppId, uniMPOpenConfiguration); + } + if(TextUtils.isEmpty(mCurrentAppId)){ + //绗竴娆$敤瑕佷紤鐪� + SystemClock.sleep(1000); } mCurrentAppId = uniAppId;//璁板綍褰撳墠灏忕▼搴� mUniMPCaches.put(uniMP.getAppid(), uniMP); } catch (Exception e) { e.printStackTrace(); HdlThreadLogic.toast(HDLApp.getInstance(), R.string.uni_open_error); - initDCUniMPSDK(HDLApp.getInstance()); +// initDCUniMPSDK(HDLApp.getInstance()); HdlLogLogic.print("鎵撳紑澶辫触===" + e.getMessage()); } } diff --git a/app/src/main/java/com/hdl/photovoltaic/uni/MySplashView.java b/app/src/main/java/com/hdl/photovoltaic/uni/MySplashView.java new file mode 100755 index 0000000..69c6a9d --- /dev/null +++ b/app/src/main/java/com/hdl/photovoltaic/uni/MySplashView.java @@ -0,0 +1,35 @@ +package com.hdl.photovoltaic.uni; + +import android.content.Context; +import android.graphics.Color; +import android.util.Log; +import android.view.Gravity; +import android.view.LayoutInflater; +import android.view.View; +import android.view.ViewGroup; +import android.widget.FrameLayout; +import android.widget.TextView; + +import com.hdl.photovoltaic.R; +import com.hdl.photovoltaic.ui.CPowerStationActivity; + +import io.dcloud.feature.sdk.Interface.IDCUniMPAppSplashView; + +public class MySplashView implements IDCUniMPAppSplashView { + View splashView; + + @Override + public View getSplashView(Context context, String appid, String s1, String s2) { + // 鍦ˋctivity涓紝鍙互鐩存帴浣跨敤this鑾峰彇LayoutInflater + LayoutInflater inflater = LayoutInflater.from(context); + // 閫氳繃inflate鏂规硶灏嗗竷灞�鏂囦欢杞崲涓篤iew瀵硅薄 + splashView = inflater.inflate(R.layout.activity_splash, null); + return splashView; + } + + @Override + public void onCloseSplash(ViewGroup rootView) { + if (rootView != null) + rootView.removeView(splashView); + } +} diff --git a/app/src/main/res/anim/dcloud_unimp_close_exit.xml b/app/src/main/res/anim/dcloud_unimp_close_exit.xml index e6a3dac..d3ee64d 100644 --- a/app/src/main/res/anim/dcloud_unimp_close_exit.xml +++ b/app/src/main/res/anim/dcloud_unimp_close_exit.xml @@ -1,17 +1,8 @@ <?xml version="1.0" encoding="utf-8"?> -<set xmlns:android="http://schemas.android.com/apk/res/android"> - <alpha - - android:duration="300" - android:fromAlpha="1.0" - android:toAlpha="0" /> -<!-- <translate--> -<!-- android:fromXDelta="0"--> -<!-- android:toXDelta="100%p"--> -<!-- android:duration="300"--> -<!-- android:interpolator="@android:anim/accelerate_interpolator"--> -<!-- />--> -</set> +<translate xmlns:android="http://schemas.android.com/apk/res/android" + android:duration="200" + android:fromXDelta="0%p" + android:toXDelta="0%p" /> diff --git a/app/src/main/res/anim/dcloud_unimp_host_close_exit.xml b/app/src/main/res/anim/dcloud_unimp_host_close_exit.xml index a54e277..d3ee64d 100644 --- a/app/src/main/res/anim/dcloud_unimp_host_close_exit.xml +++ b/app/src/main/res/anim/dcloud_unimp_host_close_exit.xml @@ -1,14 +1,9 @@ <?xml version="1.0" encoding="utf-8"?> -<set xmlns:android="http://schemas.android.com/apk/res/android"> - <alpha +<translate xmlns:android="http://schemas.android.com/apk/res/android" + android:duration="200" + android:fromXDelta="0%p" + android:toXDelta="0%p" /> - android:duration="300" - android:fromAlpha="1.0" - android:toAlpha="0" /> -<!-- <translate--> -<!-- android:fromXDelta="0"--> -<!-- android:toXDelta="100%p"--> -<!-- android:duration="300"--> -<!-- android:interpolator="@android:anim/accelerate_interpolator"--> -<!-- />--> -</set> \ No newline at end of file + + + diff --git a/app/src/main/res/anim/dcloud_unimp_host_open_enter.xml b/app/src/main/res/anim/dcloud_unimp_host_open_enter.xml index 97e86f0..d3ee64d 100644 --- a/app/src/main/res/anim/dcloud_unimp_host_open_enter.xml +++ b/app/src/main/res/anim/dcloud_unimp_host_open_enter.xml @@ -1,12 +1,9 @@ <?xml version="1.0" encoding="utf-8"?> -<set xmlns:android="http://schemas.android.com/apk/res/android"> - <alpha - android:duration="300" - android:fromAlpha="0" - android:toAlpha="1.0" /> - <translate - android:duration="300" - android:fromXDelta="100%p" - android:interpolator="@android:anim/accelerate_interpolator" - android:toXDelta="0" /> -</set> \ No newline at end of file +<translate xmlns:android="http://schemas.android.com/apk/res/android" + android:duration="200" + android:fromXDelta="0%p" + android:toXDelta="0%p" /> + + + + diff --git a/app/src/main/res/anim/dcloud_unimp_open_enter.xml b/app/src/main/res/anim/dcloud_unimp_open_enter.xml index b218075..d3ee64d 100644 --- a/app/src/main/res/anim/dcloud_unimp_open_enter.xml +++ b/app/src/main/res/anim/dcloud_unimp_open_enter.xml @@ -1,15 +1,9 @@ <?xml version="1.0" encoding="utf-8"?> -<set xmlns:android="http://schemas.android.com/apk/res/android"> - <alpha +<translate xmlns:android="http://schemas.android.com/apk/res/android" + android:duration="200" + android:fromXDelta="0%p" + android:toXDelta="0%p" /> - android:duration="300" - android:fromAlpha="0.0" - android:toAlpha="1.0" /> -<!-- <translate--> -<!-- android:fromXDelta="0"--> -<!-- android:toXDelta="100%p"--> -<!-- android:duration="300"--> -<!-- android:interpolator="@android:anim/accelerate_interpolator"--> -<!-- />--> -</set> \ No newline at end of file + + diff --git a/app/src/main/res/layout/activity_splash.xml b/app/src/main/res/layout/activity_splash.xml new file mode 100644 index 0000000..6ff3692 --- /dev/null +++ b/app/src/main/res/layout/activity_splash.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:alpha="0.6" + android:background="@color/text_FFFFFFFF"> + +</LinearLayout> \ No newline at end of file diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index 4253f75..4fac929 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -4,6 +4,8 @@ <item name="android:background">@color/black_overlay</item> <item name="android:buttonBarStyle">?android:attr/buttonBarStyle</item> </style> - + <style name="NoAnimationTheme" parent="Theme.AppCompat.Light.NoActionBar"> + <item name="android:windowAnimationStyle">@null</item> + </style> </resources> \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index f887031..e7da647 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -58,7 +58,7 @@ </style> - <style name="DCloudMPHostActivityTheme" parent="@style/Theme.AppCompat"> + <style name="DCloudMPHostActivityTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowAnimationStyle">@style/uniMPHostWindowAnimation</item> </style> diff --git a/build.gradle b/build.gradle index 05c8bec..15d7362 100644 --- a/build.gradle +++ b/build.gradle @@ -52,4 +52,17 @@ task clean(type: Delete) { delete rootProject.buildDir +} + +// 淇濊瘉dex_files鏂囦欢涓寚瀹氱殑鏂囦欢閮藉姞杞藉埌Main Dex涓� +afterEvaluate { + tasks.matching { + it.name.startsWith('dex') + }.each { dx -> + if (dx.additionalParameters == null) { + dx.additionalParameters = [] + } + dx.additionalParameters += '--multi-dex' + dx.additionalParameters += "--main-dex-list=$projectDir/dex_files".toString() + } } \ No newline at end of file -- Gitblit v1.8.0