当前位置:   article > 正文

Android遇到的问题,解决方法和一些小技巧_the exception could not be delivered to the consum

the exception could not be delivered to the consumer because it has already

1. 动态修改Shape的solid属性的color值

平常我们在xml中经常会用到Shape,开发中可能要公用同一个Shape,但是颜色背景颜色又不一样,

//比如:
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <corners android:radius="5dp" />
    <solid android:color="@color/white" />
</shape>
  • 1
  • 2
  • 3
  • 4
  • 5

解决方法:

//我们在Activity中去动态修改背景颜色,就不需要重新再写一个shape了。是不是很方便
GradientDrawable drawable =(GradientDrawable)view.getBackground();
drawable.setColor(getResources().getColor(color));
  • 1
  • 2
  • 3

2.android studio 创建新项目一直building解决

主要原因,可能是你的Android studio的版本与之对应不上,或者是被墙了。导致下载不了gradle的版本,所以就一直building

先找到文件包地址:
C:\Users\Administrator.gradle\wrapper\dists
这个是我的地址,你找你相对应的地址

这里写图片描述

解决办法,找到你新建的项目

这里写图片描述

修改里面的参数:distributionUrl=…

#Fri Jan 06 12:40:33 CST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

记住前提是,你gradle-2.10-all文件里面不是空的,要不然还是一样需要等待building
还有一种方法,就是去(https://services.gradle.org/distributions)下载相同版本的 gradle,放到路径 :C:\Users\Administrator.gradle\wrapper\dists 文件夹里。
可能你修改完成之后,又会报以下错误,

Gradle sync failed: Another ‘refresh project’ task is currently running for the project: C:\Users\Administrator\Desktop\Deyijia1
Consult IDE log for more details (Help | Show Log)
那下面我们直接把 Android studio 关掉,找到 log日志。全部删除
这里写图片描述


3.JNI编译时错误 编码GBK的不可映射字符 解决方法

出现这种错误的原因是由于JDK是国际版的,在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作系统默认采用的编码格式。

解决方法:应该使用-encoding参数指明编码方式,如:

javah -jni -encoding UTF-8 com.example.XXXX.XXXX.MainActivity
  • 1

4.友盟微信支付jar冲突

如果你使用了精简版微信,是没有支付相关的内容,若要添加支付,只需删掉umengwx的jar(保留weixin2),放入微信原生jar即可。 如果你是用的是完整版微信,其中weixin1这个jar跟微信原生sdk是同一个jar(只是名字不同),所以为了保证版本一致请使用weixin1这个jar,删掉微信原生sdk即可实现支付。

原因:libammsdk.jar ,SocialSDK_WeiXin_1.jar,两个包里面有同一个a.class文件。

报错代码:

Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/tencent/mm/opensdk/a/a/a$a.class
  • 1
  • 2

上面一段是友盟的解决方案,看着有点生硬

注意:我使用的是完整版。就使用了libammsdk.jar ,SocialSDK_WeiXin_Full.jar这两个jar包,删除了原有的SocialSDK_WeiXin_1.jar,SocialSDK_WeiXin_2.jar包,导致微信支付调用失败。

最终解决方案,保留使用SocialSDK_WeiXin_1.jar,SocialSDK_WeiXin_Full.jar两个包就不会产生冲突。其它的旧版本包全部干掉。

5.【Android】WebView加载https页面不能正常显示资源问题

跳到该地址:http://blog.csdn.net/crazy_zihao/article/details/51557425

6. ImageView (fitXY) 属性

fitXY 这种图片的显示方式的效果是:根据 ImageView 设置的大小拉伸图片以填充满空间,(单独设置此属性时)图片会变形。
adjustViewBounds 是限制图片在显示时保持原图比例。(和 fitXY 显示方式合用能到达自适应的效果)

7.java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position

java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid item position 157(offset:157).state:588
               at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:3300)
               at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:3258)
               at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1803)
               at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1302)
               at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1265)
               at android.support.v7.widget.LinearLayoutManager.scrollBy(LinearLayoutManager.java:1093)
               at android.support.v7.widget.LinearLayoutManager.scrollVerticallyBy(LinearLayoutManager.java:956)
               at android.support.v7.widget.RecyclerView$ViewFlinger.run(RecyclerView.java:2715)
                at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
                at android.view.Choreographer.doCallbacks(Choreographer.java:555)
                at android.view.Choreographer.doFrame(Choreographer.java:524)
                at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
                at android.os.Handler.handleCallback(Handler.java:615)
                at android.os.Handler.dispatchMessage(Handler.java:92)
                at android.os.Looper.loop(Looper.java:137)
                at android.app.ActivityThread.main(ActivityThread.java:4921)
                at java.lang.reflect.Method.invokeNative(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:511)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1027)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:794)
                at dalvik.system.NativeStart.main(Native Method)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

解决方案:http://www.apkbus.com/blog-898535-67963.html

8.关于使用recycleview,Item布局较高,显示不全的布局问题。

后来查了一下,主要是因为布局最外层 android:layout_height="match_parent"使用的是这个属性,导致绘制的同时只绘制了一屏。我们将布局最外层的属性**android:layout_height=“wrap_content”**就不会出现绘制不全的问题。

9.Translation1.3.6配置应用ID与应用密钥

  1. 登录 http://ai.youdao.com 该网址,然后注册,登录账号。
  2. 找到应用管理——我的应用——创建应用
  3. 见证奇迹的时刻到了,甩手就是两张图

这里写图片描述

接下来就该干活了,不用我多说了。

#Error:(176, 13) Failed to resolve:
**遇到这种情况一般原因是引用的下载地址有问题,没有找到该gradle。**所以说我们需要直接更改build.gradle文件的maven地址。

 repositories {
        jcenter()
//        maven {
//            url 'http://maven.aliyun.com/nexus/content/groups/public'
//        }
        maven {
            url 'https://maven.google.com/'
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

10.出现 java.lang.NoClassDefFoundError: 在Android 5.0以下

原因是:由于项目方法数超过了 dex突破65535的限制
我们开启了 multiDexEnabled true,然而在 Application 里面没有初始化 MultiDex.install(base),导致报错。
Application类里面实现添加该方法即可。

  @Override
    protected void attachBaseContext(Context base) {
        super.attachBaseContext(base);
        MultiDex.install(base);
    }
  • 1
  • 2
  • 3
  • 4
  • 5

解决方案:https://www.jianshu.com/p/8b4f711da0bb

11.出现java.lang.NoClassDefFoundError: Failed resolution of: Lcom/ta/utdid2/device/UTDevice

如果你有用到友盟SDK,可以看下是不是没有引入包

compile 'com.umeng.sdk:utdid:1.1.5.3'
  • 1

Android Studio 3.0之后的写法是

implementation 'com.umeng.sdk:utdid:1.1.5.3'
  • 1

如果还是报错,可能是与阿里的包有冲突。解决方案
请跳转: https://help.aliyun.com/knowledge_detail/55956.html

12.友盟Device_token 获取不到相关问题整理【安卓版】

解决方案:
请跳转: http://bbs.umeng.com/thread-15233-1-1.html

13.cannot find implementation for WordRoomDatabase. WordRoomDatabase_Impl does not exist

问题所在:

  1. 项目是否有使用 kotlin
    如果有请查看 build.gradle文件 是否正确
apply plugin: 'com.android.application'

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

//apply plugin: 'kotlin-kapt'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.zy.wanandroid"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'com.android.support:design:28.0.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

    implementation 'com.android.support:recyclerview-v7:28.0.0'
    implementation 'io.reactivex.rxjava2:rxjava:2.2.3'
    implementation 'io.reactivex.rxjava2:rxandroid:2.1.0'

	//主要就是这三个,你要看是否一致,使用是否正确,如果你使用了kotlin 三个缺一不可
    implementation "android.arch.persistence.room:runtime:1.1.1"
    //注意看 后缀还不一样 room:compiler
    annotationProcessor  "android.arch.persistence.room:compiler:1.1.1"
    kapt "android.arch.persistence.room:compiler:1.1.1"
    
    implementation 'android.arch.lifecycle:extensions:1.1.1'
    implementation "android.arch.navigation:navigation-fragment:1.0.0-alpha07"
    implementation "android.arch.navigation:navigation-ui:1.0.0-alpha07"

}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56

14. io.reactivex.exceptions.UndeliverableException: The exception could not be delivered to the consumer because it has already canceled/disposed the flow or the exception has nowhere to go to begin with. Further reading: https://github.com/ReactiveX/RxJava/wiki/What’s-different-in-2.0#error-handling | kotlin.NotImplementedError: An operation is not implemented: not implemented

解决方法:https://blog.csdn.net/lmh820822/article/details/76854411

15. java.lang.RuntimeException: Unable to start activity ComponentInfo{xxxActivity}: java.lang.IllegalStateException: Only fullscreen opaque activities can request orientation

原因分析
targetsdk26以上,对于透明主题的activity不能够通过manifest设定android:screenOrientation。
具体分析见这里
https://zhuanlan.zhihu.com/p/32190223
解决办法
检查报错的Activity是否在AndroidManifest中声明了android:screenOrientation,若有需要将其去除。

16.OKHttp异常java.lang.IllegalStateException: closed与debug时遇到的坑

解决地址:https://blog.csdn.net/u012587005/article/details/78504925

17.Android 多语言切换,适配8.0

解决地址:https://www.jianshu.com/p/f56e30b6f631
具体原因,系统若是8.0以上需要用Activity的上下文。

18.android Typeerror:Cannot read property ‘xxxx’ null

解决地址:https://www.e-learn.cn/content/wangluowenzhang/651768

19.Expected Android API level 21+ but was 19

查看你的Okhttp的版本是否
implementation ‘com.squareup.okhttp3:logging-interceptor:3.14.0’ 改成
implementation ‘com.squareup.okhttp3:logging-interceptor:3.12.0’ 需要降级版本

20. android studio terminal git log 乱码问题解决方案

terminal 输入: set LESSCHARSET=utf-8

21. java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter favicon

解决方案:https://blog.csdn.net/jia635/article/details/81068866

22. 应用签名认领

jarsigner -verbose -keystore [密钥的文件路径]C:\sign_verification\mykeystore -signedjar [打包之后的包名与路径]meizu.apk [未签名的包名]meizuemptyapk-release-unsigned.apk [密钥的别名]meizu

23. AndroidStudio不显示New Flutter Project

解决方案:https://www.jianshu.com/p/ebaf065d7b1c

24.Android 9.0 安装包解析错误

解决方案:https://blog.csdn.net/keep_my_mine/article/details/101025819

25.WebView,第二次调用loadUrl页面不刷新

解决方案:https://blog.csdn.net/qq_26225663/article/details/100557671

26.google应用市场更换密钥方案

https://support.google.com/googleplay/android-developer/contact/otherbugs
与客服沟通,等待谷歌官方回复邮件。内容如下
在这里插入图片描述
将该密钥的证书导出为 PEM 格式:
keytool -export -rfc -alias upload -file upload_certificate.pem -keystore keystore.jks
执行这段代码之后,就可以生产 PEM文件。发送到谷歌官方邮箱就OK了

27.Android Missing permission to insert badges 权限 崩溃

出现的情况也算是奇葩,只有索尼的机型出现这个权限错误提示,各种找,最终发现需要在AndroidManifest.xml中添加一些特殊机型的权限。言归正传,如下:

<!-- START: ShortcutBadger -->
<!-- Samsung -->
<uses-permission android:name="com.sec.android.provider.badge.permission.READ"/>
<uses-permission android:name="com.sec.android.provider.badge.permission.WRITE"/>

<!-- HTC -->
<uses-permission android:name="com.htc.launcher.permission.READ_SETTINGS"/>
<uses-permission android:name="com.htc.launcher.permission.UPDATE_SHORTCUT"/>

<!-- Sony -->
<uses-permission android:name="com.sonyericsson.home.permission.BROADCAST_BADGE"/>
<uses-permission android:name="com.sonymobile.home.permission.PROVIDER_INSERT_BADGE"/>

<!-- Apex -->
<uses-permission android:name="com.anddoes.launcher.permission.UPDATE_COUNT"/>

<!-- Solid -->
<uses-permission android:name="com.majeur.launcher.permission.UPDATE_BADGE"/>

<!-- Huawei -->
<uses-permission android:name="com.huawei.android.launcher.permission.CHANGE_BADGE" />
<uses-permission android:name="com.huawei.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="com.huawei.android.launcher.permission.WRITE_SETTINGS" />
<!-- End: ShortcutBadger -->
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

28. Android-Device supports x86,but APK only supports armeabi-v7a,armeabi,x86_64

解决方案: https://blog.csdn.net/qq_34476727/article/details/74910379

29. java.io.FileNotFoundException: /storage/emulated/0/

具体原因是,因为当前项目使用的是Android Q版本,对应的版本号是 29 有这个BUG
解决方案:https://www.jianshu.com/p/3159f2c5b2a1

30. android 10 Permission denied

解决方案:https://blog.csdn.net/wuqingsen1/article/details/104752459/

31. Android Studio真机无线调试

使用教程:https://www.cnblogs.com/chenlove/p/12327964.html

32.Android11应用端适配点

https://juejin.im/post/6890811621724618765

33.Android studio updating symbols

https://stackoverflow.com/questions/39640433/android-studio-2-x-building-symbols-forever

-Xms256m
-Xmx8192m
-XX:ReservedCodeCacheSize=2048m
-XX:+UseCompressedOops
-XX:MaxPermSize=4096m
  • 1
  • 2
  • 3
  • 4
  • 5

点击 “help”——“Edit Custom VM options” 添加以上代码
主要是因为android studio 运行内存分配不足导致,加载太慢
``

34.Android端,唤起QQ临时聊天窗口

       val urlQq = "mqqwpa://im/chat?chat_type=wpa&uin=输入QQ号&version=1&src_type=web&web_src=oicqzone.com"
        val intent = Intent(Intent.ACTION_VIEW, Uri.parse(urlQq))
        startActivity(intent)
  • 1
  • 2
  • 3

35.[SSI10004] 微博分享 网页(WebPage)类型,链接在微博只显示为“网页链接”的文字

问题描述

微博分享 网页(WebPage)类型,链接在微博只显示为“网页链接”的文字 a

解决方案

分享网页类型数据之后不显示缩略图,这属于微博的移动应用商务合作,移动 SDK 中的 LinkCard 和附件栏集成分享权限需要向微博合作申请,对接请联系微博商务:yuqing1@staff.sina.com.cn

解决地址:https://developer.umeng.com/docs/128606/detail/129488?spm=a311a.7996332.0.0.35323080nYHX02

36.华为honor 8.0打不开app解决方案

1. 如果Manifest中有给Activity设置这个属性

android:screenOrientation="portrait"
  • 1

删除掉这条属性,改用在代码中设置

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
  • 1

2. 如果在主题中有用到这条属性,也请删除,即可解决问题

<item name="android:windowIsTranslucent">true</item>
  • 1

原文地址:https://www.jianshu.com/p/f56e094b3ffb

37. Could not initialize class name.kropp.intellij.makefile.MakefileLanguage

导致Android studio 卡顿,禁止使用这个插件就好了;
解决方案:https://segmentfault.com/a/1190000039350707

38. Execution failed for task ‘:app:kaptProdReleaseKotlin’.

gradle.properties 文件添加以下配置;

kapt.use.worker.api=false
kapt.incremental.apt=false
  • 1
  • 2

解决方案:https://youtrack.jetbrains.com/issue/KT-40750

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/242177?site
推荐阅读
相关标签
  

闽ICP备14008679号