jenly1314 / appupdater Goto Github PK
View Code? Open in Web Editor NEW🚀 AppUpdater一个专注于App更新,一键傻瓜式集成App版本升级的轻量开源库。(集成步骤超简单)
License: MIT License
🚀 AppUpdater一个专注于App更新,一键傻瓜式集成App版本升级的轻量开源库。(集成步骤超简单)
License: MIT License
设置setUpdateCallback后卡住,只执行了onDownloading以及onStart
我测试了下 .setApkMD5("595edf9db4e839bf0ac7c192e693ecac"),然后运行报错了,我看了下日志是
java.util.IllegalFormatConversionException: d != java.lang.String
at java.util.Formatter$FormatSpecifier.failConversion(Formatter.java:4403)
at java.util.Formatter$FormatSpecifier.printInteger(Formatter.java:2885)
at java.util.Formatter$FormatSpecifier.print(Formatter.java:2839)
at java.util.Formatter.format(Formatter.java:2524)
at java.util.Formatter.format(Formatter.java:2459)
at java.lang.String.format(String.java:2870)
at com.king.app.updater.service.DownloadService.startDownload(DownloadService.java:134)
我看了下好像是这个引起的吧
Log.d(Constants.TAG,String.format("UpdateConfig.apkMD5:%d",apkMD5));
%d的问题?
在方法里面 com.king.app.updater.AppUpdater#startDownloadService
我看else的逻辑会走启动服务的方法,mContext.startService(intent); 会不适配8.0
应该根据系统版本来启动startService 或 startForegroundService
Fatal Exception: java.lang.RuntimeException: Unable to start service com.king.app.updater.service.DownloadService@c59091c with Intent { cmp=com.wwyy.wzhxl/com.king.app.updater.service.DownloadService }: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.king.app.updater.UpdateConfig.l()' on a null object reference
at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:4107)
at android.app.ActivityThread.access$1800(ActivityThread.java:221)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1893)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7403)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
用MD5去验证,然后还是去到下载,不去安装。
如果文件的MD5值的首位是0,框架内部计算出MD5值之后会自动去掉0,导致MD5值只有31位数了,一直无法匹配我设置进去的MD5值。
框架内打印的数据 D/AppUpdater: FileMD5:bc4af78bfaec50b820997444a3ce205
真正的MD5:0bc4af78bfaec50b820997444a3ce205
有人遇到这个问题吗?
求教能支持高版本新特性吗?
如何取消下载或者暂停下载
在androidQ机型上面用不了
java.net.ConnectException: responseCode = 302
at com.king.app.updater.http.HttpManager$DownloadTask.doInBackground(HttpManager.java:114)
at com.king.app.updater.http.HttpManager$DownloadTask.doInBackground(HttpManager.java:54)
at android.os.AsyncTask$2.call(AsyncTask.java:345)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:257)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:784)
看color配置文件里有这个配置,但是layout里面没有用,导致文字默认是白色的,与背景重叠不显示。
Failed to find configured root that contains /storage/emulated/0/Android/data/XXX/files/apk/XXX.apk
at androidx.core.content.FileProvider$SimplePathStrategy.getUriForFile(FileProvider.java:13)
at androidx.core.content.FileProvider.getUriForFile(FileProvider.java:2)
at com.king.app.updater.util.AppUtils.getInstallIntent(AppUtils.java:6)
at com.king.app.updater.util.NotificationUtils.showFinishNotification(NotificationUtils.java:4)
at com.king.app.updater.service.DownloadService$AppDownloadCallback.onFinish(DownloadService.java:3)
at com.king.app.updater.http.HttpManager$DownloadTask.onPostExecute(HttpManager.java:4)
at com.king.app.updater.http.HttpManager$DownloadTask.onPostExecute(HttpManager.java:1)
at android.os.AsyncTask.finish(AsyncTask.java:797)
at android.os.AsyncTask.access$900(AsyncTask.java:195)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:814)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:219)
at android.app.ActivityThread.main(ActivityThread.java:8668)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:513)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1109)
既然是提倡贯彻傻瓜理念,
android.permission.INTERNET
权限你还未添加进插件的xml。
希望可以直接加入。
在下载中通知栏Flags添加 Notification.FLAG_NO_CLEAR
。因为这个通知应该不用被清除
可以在通知栏点击 或通知栏自定取消按钮。即取消下载
我觉得用户应该需要这样的功能。尤其是app比较大。
我本来是想提供一条 Pull Request,不过这需要改好几个地方,还是希望你可以加入取消的功能。
麻烦查看下。
问题:读写权限未获取的情况下进行下载
状况:appupdater中有检测权限,但是通过后再下载apk的时候提示下载失败,点击通知栏重新下载后没有反应。
报错 Caused by: android.system.ErrnoException: open failed: EACCES (Permission denied)
经检查APP已经申请了读写文件权限。
如果设备已经root ,可以支持静默安装吗?
android 8.0
Unable to build a new hidden directory
java.io.FileNotFoundException: /storage/emulated/0/.AppUpdater/AppUpdater.apk (No such file or directory)
是否考虑添加弹窗背景自定义图片,这个功能很常见呢。
群满了,进不去啊
有的时候需要在service里面弹出dialog升级,那么这个时候你这个dialog的工具栏就不行了,建议在
AppDialog类里面提供方法返回Dialog 对象,这样可以通过
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
//8.0新特性
AppDialog.INSTANCE.getWindow().setType(WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY - 1);
} else {
AppDialog.INSTANCE.getWindow().setType(WindowManager.LayoutParams.TYPE_TOAST);
}
这两个方法,在service里面弹出dialog
谢谢
希望增加UpdateConfig设置下载的app的名字在Notification设置在“版本更新”前面下显示,不然都不知道下载的是什么apk
Please make English documentation, as an idea :)
It looks quiet awsome. 👍
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.