From cf9ceb67fb226fac9de733b5fff673409da6052e Mon Sep 17 00:00:00 2001 From: ZaneYork Date: Mon, 1 Feb 2021 15:57:50 +0800 Subject: [PATCH] 1. Fix backward compatibility 2. Fix OOM crash problem 3. Bump version --- app/build.gradle | 18 +- app/src/main/AndroidManifest.xml | 12 +- .../assets/downloadable_content_list.json | 14 +- .../assets/downloadable_content_list.json.en | 14 +- .../assets/downloadable_content_list.json.in | 14 +- .../assets/downloadable_content_list.json.th | 14 +- .../assets/downloadable_content_list.json.zh | 14 +- .../com/zane/smapiinstaller/MainActivity.java | 164 ++++++++---------- .../zane/smapiinstaller/MainApplication.java | 6 +- .../zane/smapiinstaller/logic/ApkPatcher.java | 2 +- .../smapiinstaller/logic/CommonLogic.java | 9 + .../smapiinstaller/logic/GameLauncher.java | 4 +- .../logic/UpdatableListManager.java | 4 +- .../ui/config/ConfigEditFragment.java | 4 +- .../ui/config/ConfigViewModel.java | 4 +- .../zane/smapiinstaller/utils/FileUtils.java | 4 +- build.gradle | 2 +- gradle/wrapper/gradle-wrapper.properties | 4 +- 18 files changed, 155 insertions(+), 152 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 2b616b0..496fecc 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -12,8 +12,8 @@ android { applicationId "com.zane.smapiinstaller" minSdkVersion 19 targetSdkVersion 30 - versionCode 68 - versionName "3.7.6.6" + versionCode 69 + versionName "3.7.6.7" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" multiDexEnabled true @@ -78,28 +78,28 @@ dependencies { implementation 'com.lmntrx.android.library.livin.missme:missme:0.1.5' implementation 'androidx.recyclerview:recyclerview:1.1.0' // https://mvnrepository.com/artifact/com.google.guava/guava - implementation group: 'com.google.guava', name: 'guava', version: '28.2-android' + implementation group: 'com.google.guava', name: 'guava', version: '30.1-android' // https://mvnrepository.com/artifact/org.zeroturnaround/zt-zip implementation group: 'org.zeroturnaround', name: 'zt-zip', version: '1.14' // https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 implementation group: 'org.apache.commons', name: 'commons-lang3', version: '3.11' // https://mvnrepository.com/artifact/commons-io/commons-io - implementation group: 'commons-io', name: 'commons-io', version: '2.7' + implementation group: 'commons-io', name: 'commons-io', version: '2.8.0' implementation 'com.lzy.net:okgo:3.0.4' // https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core - implementation group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.11.0' - implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.11.0' - implementation group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.11.0' + implementation group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.12.1' + implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.12.1' + implementation group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.12.1' // https://mvnrepository.com/artifact/org.lz4/lz4-pure-java implementation group: 'org.lz4', name: 'lz4-pure-java', version: '1.7.0' implementation 'com.github.didikee:AndroidDonate:0.1.0' - implementation 'com.hjq:language:3.0' + implementation 'com.hjq:language:6.0' api 'org.greenrobot:greendao:3.3.0' api 'org.greenrobot:greendao-generator:3.3.0' - testImplementation 'junit:junit:4.13' + testImplementation 'junit:junit:4.13.1' androidTestImplementation 'androidx.test.ext:junit:1.1.2' androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' implementation 'com.android.support:multidex:1.0.3' diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 70b99a7..cff4025 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -10,7 +10,14 @@ - + + + + + + + + + tools:ignore="UnusedAttribute" + android:largeHeap="true"> { currentFragment = destination.getId(); this.invalidateOptionsMenu(); - switch (currentFragment) { - case R.id.nav_about: - case R.id.nav_help: - case R.id.config_edit_fragment: - binding.appBarMain.launch.setVisibility(View.INVISIBLE); - break; - default: - binding.appBarMain.launch.setVisibility(View.VISIBLE); + if (currentFragment == R.id.nav_about + || currentFragment == R.id.nav_help + || currentFragment == R.id.config_edit_fragment + ) { + binding.appBarMain.launch.setVisibility(View.INVISIBLE); + } + else { + binding.appBarMain.launch.setVisibility(View.VISIBLE); } }); AppConfig appConfig = ConfigUtils.getConfig((MainApplication) this.getApplication(), AppConfigKeyConstants.IGNORE_UPDATE_VERSION_CODE, Constants.PATCHED_APP_NAME); @@ -206,11 +205,7 @@ public class MainActivity extends AppCompatActivity { FrameworkConfig config = manager.getConfig(); menu.findItem(R.id.settings_verbose_logging).setChecked(config.isVerboseLogging()); menu.findItem(R.id.settings_check_for_updates).setChecked(config.isCheckForUpdates()); - if (currentFragment != R.id.nav_config) { - menu.findItem(R.id.toolbar_update_check).setVisible(false); - } else { - menu.findItem(R.id.toolbar_update_check).setVisible(true); - } + menu.findItem(R.id.toolbar_update_check).setVisible(currentFragment == R.id.nav_config); menu.findItem(R.id.settings_developer_mode).setChecked(config.isDeveloperMode()); menu.findItem(R.id.settings_disable_mono_mod).setChecked(config.isDisableMonoMod()); menu.findItem(R.id.settings_rewrite_missing).setChecked(config.isRewriteMissing()); @@ -222,73 +217,62 @@ public class MainActivity extends AppCompatActivity { @Override public boolean onOptionsItemSelected(MenuItem item) { if (item.isCheckable()) { - if (item.isChecked()) { - item.setChecked(false); - } else { - item.setChecked(true); - } + item.setChecked(!item.isChecked()); } ConfigManager manager = new ConfigManager(); FrameworkConfig config = manager.getConfig(); - switch (item.getItemId()) { - case R.id.settings_verbose_logging: - config.setVerboseLogging(item.isChecked()); - break; - case R.id.settings_check_for_updates: - config.setCheckForUpdates(item.isChecked()); - break; - case R.id.settings_developer_mode: - config.setDeveloperMode(item.isChecked()); - break; - case R.id.settings_disable_mono_mod: - config.setDisableMonoMod(item.isChecked()); - break; - case R.id.settings_rewrite_missing: - config.setRewriteMissing(item.isChecked()); - break; - case R.id.settings_set_app_name: - DialogUtils.showInputDialog(binding.appBarMain.toolbar, R.string.input, R.string.settings_set_app_name, Constants.PATCHED_APP_NAME, Constants.PATCHED_APP_NAME, true, (dialog, input) -> { - String appName = input.toString(); - AppConfig appConfig = ConfigUtils.getConfig((MainApplication) getApplication(), AppConfigKeyConstants.IGNORE_UPDATE_VERSION_CODE, appName); - appConfig.setValue(appName); - ConfigUtils.saveConfig((MainApplication) getApplication(), appConfig); - Constants.PATCHED_APP_NAME = appName; - }); - return true; - case R.id.settings_set_mod_path: - DialogUtils.showInputDialog(binding.appBarMain.toolbar, R.string.input, R.string.input_mods_path, Constants.MOD_PATH, Constants.MOD_PATH, (dialog, input) -> { - if (StringUtils.isNoneBlank(input)) { - String pathString = input.toString(); - File file = new File(FileUtils.getStadewValleyBasePath(), pathString); - if (file.exists() && file.isDirectory()) { - Constants.MOD_PATH = pathString; - config.setModsPath(pathString); - manager.flushConfig(); - } else { - DialogUtils.showAlertDialog(binding.drawerLayout, R.string.error, R.string.error_illegal_path); - } - } - }); - return true; - case R.id.settings_language: - selectLanguageLogic(); - return true; - case R.id.settings_translation_service: - selectTranslateServiceLogic(); - return true; - case R.id.toolbar_update_check: - checkModUpdateLogic(); - return true; - case R.id.settings_advanced_mode: - AppConfig appConfig = ConfigUtils.getConfig((MainApplication) getApplication(), AppConfigKeyConstants.ADVANCED_MODE, "false"); - appConfig.setValue(String.valueOf(item.isChecked())); + if (item.getItemId() == R.id.settings_verbose_logging) { + config.setVerboseLogging(item.isChecked()); + } else if (item.getItemId() == R.id.settings_check_for_updates) { + config.setCheckForUpdates(item.isChecked()); + } else if (item.getItemId() == R.id.settings_developer_mode) { + config.setDeveloperMode(item.isChecked()); + } else if (item.getItemId() == R.id.settings_disable_mono_mod) { + config.setDisableMonoMod(item.isChecked()); + } else if (item.getItemId() == R.id.settings_rewrite_missing) { + config.setRewriteMissing(item.isChecked()); + } else if (item.getItemId() == R.id.settings_set_app_name) { + DialogUtils.showInputDialog(binding.appBarMain.toolbar, R.string.input, R.string.settings_set_app_name, Constants.PATCHED_APP_NAME, Constants.PATCHED_APP_NAME, true, (dialog, input) -> { + String appName = input.toString(); + AppConfig appConfig = ConfigUtils.getConfig((MainApplication) getApplication(), AppConfigKeyConstants.IGNORE_UPDATE_VERSION_CODE, appName); + appConfig.setValue(appName); ConfigUtils.saveConfig((MainApplication) getApplication(), appConfig); - startActivity(new Intent(this, MainActivity.class)); - overridePendingTransition(R.anim.fragment_fade_enter, R.anim.fragment_fade_exit); - finish(); - break; - default: - return super.onOptionsItemSelected(item); + Constants.PATCHED_APP_NAME = appName; + }); + return true; + } else if (item.getItemId() == R.id.settings_set_mod_path) { + DialogUtils.showInputDialog(binding.appBarMain.toolbar, R.string.input, R.string.input_mods_path, Constants.MOD_PATH, Constants.MOD_PATH, (dialog, input) -> { + if (StringUtils.isNoneBlank(input)) { + String pathString = input.toString(); + File file = new File(FileUtils.getStadewValleyBasePath(), pathString); + if (file.exists() && file.isDirectory()) { + Constants.MOD_PATH = pathString; + config.setModsPath(pathString); + manager.flushConfig(); + } else { + DialogUtils.showAlertDialog(binding.drawerLayout, R.string.error, R.string.error_illegal_path); + } + } + }); + return true; + } else if (item.getItemId() == R.id.settings_language) { + selectLanguageLogic(); + return true; + } else if (item.getItemId() == R.id.settings_translation_service) { + selectTranslateServiceLogic(); + return true; + } else if (item.getItemId() == R.id.toolbar_update_check) { + checkModUpdateLogic(); + return true; + } else if (item.getItemId() == R.id.settings_advanced_mode) { + AppConfig appConfig = ConfigUtils.getConfig((MainApplication) getApplication(), AppConfigKeyConstants.ADVANCED_MODE, "false"); + appConfig.setValue(String.valueOf(item.isChecked())); + ConfigUtils.saveConfig((MainApplication) getApplication(), appConfig); + startActivity(new Intent(this, MainActivity.class)); + overridePendingTransition(R.anim.fragment_fade_enter, R.anim.fragment_fade_exit); + finish(); + } else { + return super.onOptionsItemSelected(item); } manager.flushConfig(); return true; @@ -333,34 +317,34 @@ public class MainActivity extends AppCompatActivity { boolean restart; switch (position) { case 0: - restart = LanguagesManager.setSystemLanguage(this); + restart = MultiLanguages.setSystemLanguage(this); break; case 1: - restart = LanguagesManager.setAppLanguage(this, Locale.ENGLISH); + restart = MultiLanguages.setAppLanguage(this, Locale.ENGLISH); break; case 2: - restart = LanguagesManager.setAppLanguage(this, Locale.SIMPLIFIED_CHINESE); + restart = MultiLanguages.setAppLanguage(this, Locale.SIMPLIFIED_CHINESE); break; case 3: - restart = LanguagesManager.setAppLanguage(this, Locale.TRADITIONAL_CHINESE); + restart = MultiLanguages.setAppLanguage(this, Locale.TRADITIONAL_CHINESE); break; case 4: - restart = LanguagesManager.setAppLanguage(this, Locale.KOREA); + restart = MultiLanguages.setAppLanguage(this, Locale.KOREA); break; case 5: - restart = LanguagesManager.setAppLanguage(this, new Locale("th", "")); + restart = MultiLanguages.setAppLanguage(this, new Locale("th", "")); break; case 6: - restart = LanguagesManager.setAppLanguage(this, new Locale("es", "")); + restart = MultiLanguages.setAppLanguage(this, new Locale("es", "")); break; case 7: - restart = LanguagesManager.setAppLanguage(this, Locale.FRENCH); + restart = MultiLanguages.setAppLanguage(this, Locale.FRENCH); break; case 8: - restart = LanguagesManager.setAppLanguage(this, new Locale("pt", "")); + restart = MultiLanguages.setAppLanguage(this, new Locale("pt", "")); break; case 9: - restart = LanguagesManager.setAppLanguage(this, new Locale("in", "")); + restart = MultiLanguages.setAppLanguage(this, new Locale("in", "")); break; default: return; @@ -414,7 +398,7 @@ public class MainActivity extends AppCompatActivity { @Override protected void attachBaseContext(Context newBase) { // 国际化适配(绑定语种) - super.attachBaseContext(LanguagesManager.attach(newBase)); + super.attachBaseContext(MultiLanguages.attach(newBase)); } @Override diff --git a/app/src/main/java/com/zane/smapiinstaller/MainApplication.java b/app/src/main/java/com/zane/smapiinstaller/MainApplication.java index 812a1cb..ca22afe 100644 --- a/app/src/main/java/com/zane/smapiinstaller/MainApplication.java +++ b/app/src/main/java/com/zane/smapiinstaller/MainApplication.java @@ -3,7 +3,7 @@ package com.zane.smapiinstaller; import android.app.Application; import android.content.Context; -import com.hjq.language.LanguagesManager; +import com.hjq.language.MultiLanguages; import com.lzy.okgo.OkGo; import com.zane.smapiinstaller.entity.DaoMaster; import com.zane.smapiinstaller.entity.DaoSession; @@ -29,7 +29,7 @@ public class MainApplication extends Application { // .addInterceptor(new GzipRequestInterceptor()) .build(); OkGo.getInstance().setOkHttpClient(okHttpClient).init(this); - LanguagesManager.init(this); + MultiLanguages.init(this); // note: DevOpenHelper is for dev only, use a OpenHelper subclass instead DbOpenHelper helper = new DbOpenHelper(this, "installer-db"); Database db = helper.getWritableDb(); @@ -39,7 +39,7 @@ public class MainApplication extends Application { @Override protected void attachBaseContext(Context base) { // 国际化适配(绑定语种) - super.attachBaseContext(LanguagesManager.attach(base)); + super.attachBaseContext(MultiLanguages.attach(base)); MultiDex.install(this); } } diff --git a/app/src/main/java/com/zane/smapiinstaller/logic/ApkPatcher.java b/app/src/main/java/com/zane/smapiinstaller/logic/ApkPatcher.java index 8303c24..83614ed 100644 --- a/app/src/main/java/com/zane/smapiinstaller/logic/ApkPatcher.java +++ b/app/src/main/java/com/zane/smapiinstaller/logic/ApkPatcher.java @@ -108,7 +108,7 @@ public class ApkPatcher { try { PackageInfo packageInfo = packageManager.getPackageInfo(packageName, 0); String sourceDir = packageInfo.applicationInfo.publicSourceDir; - gamePackageName.set(packageName); + gamePackageName.set(CommonLogic.computePackageName(packageInfo)); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) { gameVersionCode.set(packageInfo.getLongVersionCode()); } else { diff --git a/app/src/main/java/com/zane/smapiinstaller/logic/CommonLogic.java b/app/src/main/java/com/zane/smapiinstaller/logic/CommonLogic.java index 695cf55..1d455d3 100644 --- a/app/src/main/java/com/zane/smapiinstaller/logic/CommonLogic.java +++ b/app/src/main/java/com/zane/smapiinstaller/logic/CommonLogic.java @@ -27,6 +27,7 @@ import com.microsoft.appcenter.crashes.Crashes; import com.zane.smapiinstaller.MainApplication; import com.zane.smapiinstaller.R; import com.zane.smapiinstaller.constant.DialogAction; +import com.zane.smapiinstaller.constant.ManifestPatchConstants; import com.zane.smapiinstaller.entity.ApkFilesManifest; import com.zane.smapiinstaller.entity.ManifestEntry; import com.zane.smapiinstaller.utils.DialogUtils; @@ -189,6 +190,14 @@ public class CommonLogic { return apkFilesManifests; } + public static String computePackageName(PackageInfo packageInfo){ + String packageName = packageInfo.packageName; + if (StringUtils.endsWith(packageInfo.versionName, ManifestPatchConstants.PATTERN_VERSION_AMAZON)) { + packageName = ManifestPatchConstants.APP_PACKAGE_NAME + ManifestPatchConstants.PATTERN_VERSION_AMAZON; + } + return packageName; + } + /** * 提取SMAPI环境文件到内部存储对应位置 * diff --git a/app/src/main/java/com/zane/smapiinstaller/logic/GameLauncher.java b/app/src/main/java/com/zane/smapiinstaller/logic/GameLauncher.java index 5b039a3..4a687c0 100644 --- a/app/src/main/java/com/zane/smapiinstaller/logic/GameLauncher.java +++ b/app/src/main/java/com/zane/smapiinstaller/logic/GameLauncher.java @@ -10,7 +10,9 @@ import android.view.View; import com.microsoft.appcenter.crashes.Crashes; import com.zane.smapiinstaller.R; import com.zane.smapiinstaller.constant.Constants; +import com.zane.smapiinstaller.constant.ManifestPatchConstants; import com.zane.smapiinstaller.utils.DialogUtils; +import com.zane.smapiinstaller.utils.StringUtils; /** * 游戏启动器 @@ -63,7 +65,7 @@ public class GameLauncher { else { versionCode = packageInfo.versionCode; } - if(!CommonLogic.unpackSmapiFiles(context, packageInfo.applicationInfo.publicSourceDir, true, packageInfo.packageName, versionCode)) { + if(!CommonLogic.unpackSmapiFiles(context, packageInfo.applicationInfo.publicSourceDir, true, CommonLogic.computePackageName(packageInfo), versionCode)) { DialogUtils.showAlertDialog(root, R.string.error, R.string.error_failed_to_repair); return; } diff --git a/app/src/main/java/com/zane/smapiinstaller/logic/UpdatableListManager.java b/app/src/main/java/com/zane/smapiinstaller/logic/UpdatableListManager.java index afc84b0..9e63344 100644 --- a/app/src/main/java/com/zane/smapiinstaller/logic/UpdatableListManager.java +++ b/app/src/main/java/com/zane/smapiinstaller/logic/UpdatableListManager.java @@ -2,7 +2,7 @@ package com.zane.smapiinstaller.logic; import android.view.View; -import com.hjq.language.LanguagesManager; +import com.hjq.language.MultiLanguages; import com.lzy.okgo.OkGo; import com.lzy.okgo.callback.StringCallback; import com.lzy.okgo.model.Response; @@ -41,7 +41,7 @@ public class UpdatableListManager implements Listenable Boolean updated = updateChecked.get(tClass); if(updated == null || !updated) { updateChecked.put(tClass, true); - String languageSuffix = '.' + LanguagesManager.getAppLanguage(root.getContext()).getLanguage(); + String languageSuffix = '.' + MultiLanguages.getAppLanguage().getLanguage(); updateList(root, tClass, updateUrl, filename, languageSuffix); } } diff --git a/app/src/main/java/com/zane/smapiinstaller/ui/config/ConfigEditFragment.java b/app/src/main/java/com/zane/smapiinstaller/ui/config/ConfigEditFragment.java index 921c6c2..9292a5c 100644 --- a/app/src/main/java/com/zane/smapiinstaller/ui/config/ConfigEditFragment.java +++ b/app/src/main/java/com/zane/smapiinstaller/ui/config/ConfigEditFragment.java @@ -19,7 +19,7 @@ import android.webkit.WebViewClient; import androidx.webkit.WebViewAssetLoader; -import com.hjq.language.LanguagesManager; +import com.hjq.language.MultiLanguages; import com.zane.smapiinstaller.BuildConfig; import com.zane.smapiinstaller.R; import com.zane.smapiinstaller.constant.Constants; @@ -106,7 +106,7 @@ public class ConfigEditFragment extends Fragment { private void onScrollViewRendered(File file, Context context) { String fileText = FileUtils.getFileText(file); if (fileText != null) { - String lang = LanguagesManager.getAppLanguage(context).getLanguage(); + String lang = MultiLanguages.getAppLanguage().getLanguage(); switch (lang) { case "zh": lang = "zh-CN"; diff --git a/app/src/main/java/com/zane/smapiinstaller/ui/config/ConfigViewModel.java b/app/src/main/java/com/zane/smapiinstaller/ui/config/ConfigViewModel.java index 8047a94..a5bbae6 100644 --- a/app/src/main/java/com/zane/smapiinstaller/ui/config/ConfigViewModel.java +++ b/app/src/main/java/com/zane/smapiinstaller/ui/config/ConfigViewModel.java @@ -4,7 +4,7 @@ import android.view.View; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; -import com.hjq.language.LanguagesManager; +import com.hjq.language.MultiLanguages; import com.zane.smapiinstaller.MainApplication; import com.zane.smapiinstaller.constant.AppConfigKeyConstants; import com.zane.smapiinstaller.entity.AppConfig; @@ -114,7 +114,7 @@ class ConfigViewModel extends ViewModel implements ListenableObject descriptions = this.modList.stream().map(ModManifestEntry::getDescription).filter(Objects::nonNull).collect(Collectors.toList()); - String language = LanguagesManager.getAppLanguage(app).getLanguage(); + String language = MultiLanguages.getAppLanguage().getLanguage(); Query query = daoSession.getTranslationResultDao().queryBuilder().where( TranslationResultDao.Properties.Origin.in(descriptions), TranslationResultDao.Properties.Locale.eq(language), diff --git a/app/src/main/java/com/zane/smapiinstaller/utils/FileUtils.java b/app/src/main/java/com/zane/smapiinstaller/utils/FileUtils.java index 84c3a47..31c17fb 100644 --- a/app/src/main/java/com/zane/smapiinstaller/utils/FileUtils.java +++ b/app/src/main/java/com/zane/smapiinstaller/utils/FileUtils.java @@ -11,7 +11,7 @@ import com.google.common.hash.Hashing; import com.google.common.io.ByteStreams; import com.google.common.io.CharStreams; import com.google.common.io.Files; -import com.hjq.language.LanguagesManager; +import com.hjq.language.MultiLanguages; import org.apache.commons.io.input.BOMInputStream; import org.apache.commons.lang3.StringUtils; @@ -78,7 +78,7 @@ public class FileUtils extends org.zeroturnaround.zip.commons.FileUtils { */ public static InputStream getLocaledLocalAsset(Context context, String filename) throws IOException { try { - String language = LanguagesManager.getAppLanguage(context).getLanguage(); + String language = MultiLanguages.getAppLanguage().getLanguage(); String localedFilename = filename + '.' + language; File file = new File(context.getFilesDir(), localedFilename); if (file.exists()) { diff --git a/build.gradle b/build.gradle index 332e81c..bdd09c6 100644 --- a/build.gradle +++ b/build.gradle @@ -8,7 +8,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:4.0.2' + classpath 'com.android.tools.build:gradle:4.1.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72" classpath "androidx.navigation:navigation-safe-args-gradle-plugin:2.3.1" classpath 'org.greenrobot:greendao-gradle-plugin:3.3.0' diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index ea00ff8..9fe1473 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Wed Aug 05 15:43:33 CST 2020 +#Mon Feb 01 14:39:47 CST 2021 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip