Android:开发中遇到的异常Error解析

1、错误:android.content.res.Resources$NotFoundException

解析:参数类型传错会提示此错误,例如:textView.setText(int i);应该传String类型的值,**textView.setText(String.valueOf(int i));**改成这样就没事了。

2、错误:Caused by: java.lang.UnsatisfiedLinkError: dlopen failed: “/data/app/com.sinofreely.calligraphy-1/lib/arm64/libvudroid.so” is 32-bit instead of 64-bit

解析:arm的so只留下这两个目录:armeabi 和 armeabi-v7a ,其他都删掉。所以把arm-v8的so删掉就好了。

3、错误:SoapFault - faultcode: ‘soap:Server’ faultstring: ‘The given SOAPAction getApplicationEquipmentList does not match an operation.’ faultactor: ‘null’ detail: null

解析:这个错误是我在用ksoap2库请求后台WebService接口时报出的错误,下面是Android的网络请求方法

/**
* webservice请求
* @param wsdl 接口地址
* @param namespace 命名空间
* @param method 接口方法名
* @param json 请求参数
* @return 结果
*/
private String requestWebService(String wsdl, String namespace, String method, JSONObject json){
String result = “”;
SoapObject soapObject = new SoapObject(namespace, method);
if(json!=null)
soapObject.addProperty(“arg0”, json.toString());
SoapSerializationEnvelope soapSerializationEnvelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapSerializationEnvelope.bodyOut = soapObject;
soapSerializationEnvelope.dotNet = false;
HttpTransportSE httpTransportSE = new HttpTransportSE(wsdl,Constants.INSTANCE.getNET_OUT_TIME());
httpTransportSE.debug = true;
//添加HeaderProperty信息,解决调用call的时候报java.io.EOFException错误
ArrayList headerPropertyArrayList = new ArrayList<>();
headerPropertyArrayList.add(new HeaderProperty(“Connection”, “close”));
try {
httpTransportSE.call(method, soapSerializationEnvelope,headerPropertyArrayList);
if(soapSerializationEnvelope.getResponse()!=null){
result = soapSerializationEnvelope.getResponse().toString();
}
} catch (SocketTimeoutException e) {
e.printStackTrace();
result = buildErrorJson(“408”,“请求超时”);
}catch (Exception e) {
e.printStackTrace();
if (TextUtils.isEmpty(result)) {
result = buildErrorJson(“404”, “网络异常,获取数据失败”);
}
}
return result;
}

为什么会出现这个错误呢?先看下咱们是怎样发请求的!首先,SoapObject soapObject = new SoapObject(namespace, method); 这句话配置了namespace(命名空间,学过j2ee的应该都知道,这里不再细述)method(方法名,也就是服务端开放的方法),除了这两个,另外一个重点就是action名称,看这句话httpTransportSE.call(method, soapSerializationEnvelope,headerPropertyArrayList); 这里的method和上一句是同一个对象,也就是说,我这里的接口方法名和action的名字是一模一样的,所以如果后台配置的这两个名字不一样,那就会报上面这个错误信息,后台也不会收到你发的请求,它更不会报错。

**解决方案:**知道原因就好办了,如果你是Android端开发者,可以用浏览器访问wsdl 地址(例如:http://192.168.1.105:8080/delivery/ws/deliveryWsImpl?wsdl )找到要请求的方法名,检查下soapAction的名称是否正确,比如下图的名称 soapAction="getApplicationEquipmentList "多了一个空格,就会导致请求失败
这里写图片描述

其实还有另一种解决方案,就是请求的时候不传action名,直传方法名,也就是这样**httpTransportSE.call(“”, soapSerializationEnvelope,headerPropertyArrayList); **第一个参数是空字符串,这样也可以请求成功,不过还是建议第一种方案。
如果想了解下后台是如何配置WebService请求的可以看这里Apache CXF配置

4、Kotlin编译错误:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ‘:app:compileDefault_channelDebugKotlin’.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:103)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker 1. r u n ( D e f a u l t T a s k G r a p h E x e c u t e r . j a v a : 256 ) a t o r g . g r a d l e . i n t e r n a l . p r o g r e s s . D e f a u l t B u i l d O p e r a t i o n E x e c u t o r 1.run(DefaultTaskGraphExecuter.java:256) at org.gradle.internal.progress.DefaultBuildOperationExecutor 1.run(DefaultTaskGraphExecuter.java:256)atorg.gradle.internal.progress.DefaultBuildOperationExecutorRunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor R u n n a b l e B u i l d O p e r a t i o n W o r k e r . e x e c u t e ( D e f a u l t B u i l d O p e r a t i o n E x e c u t o r . j a v a : 328 ) a t o r g . g r a d l e . i n t e r n a l . p r o g r e s s . D e f a u l t B u i l d O p e r a t i o n E x e c u t o r . e x e c u t e ( D e f a u l t B u i l d O p e r a t i o n E x e c u t o r . j a v a : 199 ) a t o r g . g r a d l e . i n t e r n a l . p r o g r e s s . D e f a u l t B u i l d O p e r a t i o n E x e c u t o r . r u n ( D e f a u l t B u i l d O p e r a t i o n E x e c u t o r . j a v a : 110 ) a t o r g . g r a d l e . e x e c u t i o n . t a s k g r a p h . D e f a u l t T a s k G r a p h E x e c u t e r RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)atorg.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)atorg.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)atorg.gradle.execution.taskgraph.DefaultTaskGraphExecuterEventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:249)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter E v e n t F i r i n g T a s k W o r k e r . e x e c u t e ( D e f a u l t T a s k G r a p h E x e c u t e r . j a v a : 238 ) a t o r g . g r a d l e . e x e c u t i o n . t a s k g r a p h . D e f a u l t T a s k P l a n E x e c u t o r EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:238) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:238)atorg.gradle.execution.taskgraph.DefaultTaskPlanExecutorTaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access 200 ( D e f a u l t T a s k P l a n E x e c u t o r . j a v a : 79 ) a t o r g . g r a d l e . e x e c u t i o n . t a s k g r a p h . D e f a u l t T a s k P l a n E x e c u t o r 200(DefaultTaskPlanExecutor.java:79) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor 200(DefaultTaskPlanExecutor.java:79)atorg.gradle.execution.taskgraph.DefaultTaskPlanExecutorTaskExecutorWorker 1. e x e c u t e ( D e f a u l t T a s k P l a n E x e c u t o r . j a v a : 104 ) a t o r g . g r a d l e . e x e c u t i o n . t a s k g r a p h . D e f a u l t T a s k P l a n E x e c u t o r 1.execute(DefaultTaskPlanExecutor.java:104) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor 1.execute(DefaultTaskPlanExecutor.java:104)atorg.gradle.execution.taskgraph.DefaultTaskPlanExecutorTaskExecutorWorker 1. e x e c u t e ( D e f a u l t T a s k P l a n E x e c u t o r . j a v a : 98 ) a t o r g . g r a d l e . e x e c u t i o n . t a s k g r a p h . D e f a u l t T a s k E x e c u t i o n P l a n . e x e c u t e ( D e f a u l t T a s k E x e c u t i o n P l a n . j a v a : 663 ) a t o r g . g r a d l e . e x e c u t i o n . t a s k g r a p h . D e f a u l t T a s k E x e c u t i o n P l a n . e x e c u t e W i t h T a s k ( D e f a u l t T a s k E x e c u t i o n P l a n . j a v a : 597 ) a t o r g . g r a d l e . e x e c u t i o n . t a s k g r a p h . D e f a u l t T a s k P l a n E x e c u t o r 1.execute(DefaultTaskPlanExecutor.java:98) at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:663) at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:597) at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor 1.execute(DefaultTaskPlanExecutor.java:98)atorg.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:663)atorg.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:597)atorg.gradle.execution.taskgraph.DefaultTaskPlanExecutorTaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl 1. r u n ( M a n a g e d E x e c u t o r I m p l . j a v a : 46 ) a t j a v a . u t i l . c o n c u r r e n t . T h r e a d P o o l E x e c u t o r . r u n W o r k e r ( T h r e a d P o o l E x e c u t o r . j a v a : 1142 ) a t j a v a . u t i l . c o n c u r r e n t . T h r e a d P o o l E x e c u t o r 1.run(ManagedExecutorImpl.java:46) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor 1.run(ManagedExecutorImpl.java:46)atjava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)atjava.util.concurrent.ThreadPoolExecutorWorker.run(ThreadPoolExecutor.java:617)
at org.gradle.internal.concurrent.ThreadFactoryImpl M a n a g e d T h r e a d R u n n a b l e . r u n ( T h r e a d F a c t o r y I m p l . j a v a : 55 ) a t j a v a . l a n g . T h r e a d . r u n ( T h r e a d . j a v a : 745 ) C a u s e d b y : o r g . g r a d l e . a p i . G r a d l e E x c e p t i o n : C o m p i l a t i o n e r r o r . S e e l o g f o r m o r e d e t a i l s a t o r g . j e t b r a i n s . k o t l i n . g r a d l e . t a s k s . T a s k s U t i l s K t . t h r o w G r a d l e E x c e p t i o n I f E r r o r ( t a s k s U t i l s . k t : 16 ) a t o r g . j e t b r a i n s . k o t l i n . g r a d l e . t a s k s . K o t l i n C o m p i l e . p r o c e s s C o m p i l e r E x i t C o d e ( T a s k s . k t : 441 ) a t o r g . j e t b r a i n s . k o t l i n . g r a d l e . t a s k s . K o t l i n C o m p i l e . c a l l C o m p i l e r ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) at java.lang.Thread.run(Thread.java:745) Caused by: org.gradle.api.GradleException: Compilation error. See log for more details at org.jetbrains.kotlin.gradle.tasks.TasksUtilsKt.throwGradleExceptionIfError(tasksUtils.kt:16) at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.processCompilerExitCode(Tasks.kt:441) at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.callCompiler ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)atjava.lang.Thread.run(Thread.java:745)Causedby:org.gradle.api.GradleException:Compilationerror.Seelogformoredetailsatorg.jetbrains.kotlin.gradle.tasks.TasksUtilsKt.throwGradleExceptionIfError(tasksUtils.kt:16)atorg.jetbrains.kotlin.gradle.tasks.KotlinCompile.processCompilerExitCode(Tasks.kt:441)atorg.jetbrains.kotlin.gradle.tasks.KotlinCompile.callCompilerkotlin_gradle_plugin(Tasks.kt:403)
at org.jetbrains.kotlin.gradle.tasks.KotlinCompile.callCompiler$kotlin_gradle_plugin(Tasks.kt:297)
at org.jetbrains.kotlin.gradle.tasks.AbstractKotlinCompile.execute(Tasks.kt:259)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter 1. r u n ( E x e c u t e A c t i o n s T a s k E x e c u t e r . j a v a : 124 ) a t o r g . g r a d l e . i n t e r n a l . p r o g r e s s . D e f a u l t B u i l d O p e r a t i o n E x e c u t o r 1.run(ExecuteActionsTaskExecuter.java:124) at org.gradle.internal.progress.DefaultBuildOperationExecutor 1.run(ExecuteActionsTaskExecuter.java:124)atorg.gradle.internal.progress.DefaultBuildOperationExecutorRunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:113)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:95)
… 33 more
错误信息

解析:编译kotlin项目的时候报以上错误基本上是 kotlin代码有错误引起的,有时候在升级AS版本,升级开发环境时也会出现,哪怕之前是正常的。只要我们找到错误的地方改正过来就好了,但从打印的错误日志中我们找不到错误位置怎么办?
解决方法:
1、点击右侧栏gradle标签;
2、选择 :app——build—— assembleDebug(我这里是选择assembleDefault_channel,Default_channel是项目渠道名称)
选择assembleDefault_channel
3、然后底部的Run标签里 可以看到打印的错误日志,从中可以找到代码错误的位置。

5、API ‘BaseVariant.getApplicationIdTextResource’ is obsolete and has been replaced with ‘VariantProperties.applicationId’

问题描述:
Android studio Arctic fox(白狐 2021年7月) 在Gradle编译项目时报出此警告;
解决方案:
这个问题原因是 Navigation Safe Args plugin 在使用getApplicationIdTextResource(),我们只需要将它更新到最新版即可,我的版本为 Navigation 版本 2.4.0-alpha04。

6、发布Lib至Jitpack失败

问题描述:
这是在Android studio Arctic fox(白狐 2021年7月)遇到的;
AS更新后,同样更新了Gradle 7.0,classpath ‘com.android.tools.build:gradle:7.0.0’,
我这里遇到了两个问题:
(1)Jitpack 错误日志报 请求的jdk11 而当前是jdk 1.8;
Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8.
(2)Jitpack 错误日志报 maven插件没有配置
Gradle ‘install’ task not found. Please add the ‘maven’ or ‘android-maven’ plugin.
解决方案:
(1)第一个问题解决是:
首先AS本地配置的jdk环境是JDK11, 如果你没有安装,请先到Oracle官网下载JDK11安装;

  • 配置gradle JDK,选择11版本
    在这里插入图片描述
  • 配置库的build.gradle代码
compileOptions {
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
    kotlinOptions {
        jvmTarget = '11'
    }

(2)再解决第二个问题,同样是修改你的Lib库的build.gradle文件

plugins {
    id 'com.android.library'
    id 'kotlin-android'
    id 'maven-publish'
}

repositories {
    mavenCentral()
    google()
    maven { url "https://jitpack.io" }
}

group='com.github.你的账户名'
version='1.0.11'

afterEvaluate {
    publishing {
        publications {
            // Creates a Maven publication called "release".
            release(MavenPublication) {
                from components.release
                groupId = 'com.github.你的账户名'
                artifactId = 'BaseApp'
                version = '1.0.11'
            }
        }
    }
}

7、提示版本不一致 implementation “org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version”

解决方法:
原因是本地kotlin-stdlib-jdk7 kotlin-stdlib-jdk8 与kotlin配置版本不一致,在build.gradle文件中增加以下引用即可。

implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

8、无法使用Compose实时预览

问题描述
编译提示:This version (1.0.0) of the Compose Compiler requires Kotlin version 1.5.10 but you appear to be using Kotlin version 1.5.21 which is not known to be compatible.
此版本(1.0.0)的Compose编译器需要Kotlin版本1.5.10,但您似乎正在使用Kotlin版本1.5.21,该版本不兼容。
解决方法
升级compose库到最新版;
具体可参考官方示例demo中gradle配置的Compose库版本。

9、原生分享图片至QQ 界面透明,无法发送给好友

问题描述
在使用原生Intent方式分享图片给第三方应用时, 微信好友和朋友圈都可以正常分享,并能读到图片,唯独QQ无法分享,分享时,界面会显示一个透明的界面,切换时后台管理可以看到确实拉起了QQ。
解决方法
猜测是无法读取到图片的因素,导致QQ界面内容没有展示出来;
最后解决方法是,将intent.data = uri删除掉,就可以分享了。这句是让系统分享弹窗展示预览图的,没办法系统弹窗只好先去除预览图了,最终代码如下:

/**
     * 分享图片
     * @param packageName 三方APP包名
     * @param className 三方APP类名
     */
    @SuppressLint("IntentReset")
    private fun shareImage(uri: Uri, context: Context, packageName: String, className: String) {
        val shareIntent: Intent = Intent().apply {
            action = Intent.ACTION_SEND
            type = "image/png"
            // 添加预览图, 注意:此处不要加,否则会导致QQ无法读取到文件
//            data = uri
            putExtra(Intent.EXTRA_STREAM, uri)
            addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION)
            // intent跳外部应用要加FLAG_ACTIVITY_NEW_TASK这个flag
            addFlags(Intent.FLAG_ACTIVITY_NEW_DOCUMENT)
            // 指定三方APP路径
            `package` = packageName
            setClassName(packageName, className)
        }
        // 直接分享至指定APP
        context.startActivity(shareIntent)
        // 显示系统分享弹窗
//        context.startActivity(Intent.createChooser(shareIntent, "标题"))
    }

10、编译报错:java.lang.AssertionError: annotationType(): unrecognized Attribute name MODULE (class com.sun.tools.javac.util.UnsharedNameTable$NameImpl)

问题描述
老项目适配新系统,将compileSdkVersion: 设置为34 编译报错(31+以上均会出现此问题,30以下正常)

������ (1.8.0_242-release) �г����쳣��������� Bug Database (http://bugs.java.com) ��û���ҵ��ô���, ��ͨ�� Java Bug ����ҳ (http://bugreport.java.com) ������ Java ������ Bug�����ڱ����и������ij�������������Ϣ��лл��
java.lang.AssertionError: annotationType(): unrecognized Attribute name MODULE (class com.sun.tools.javac.util.UnsharedNameTable$NameImpl)
	at com.sun.tools.javac.util.Assert.error(Assert.java:133)
	at com.sun.tools.javac.code.TypeAnnotations.annotationType(TypeAnnotations.java:231)

解决方法
调整Gradle JDK的版本,将jdk版本由1.8升级到11,再次编译该错误解决。


11、编译报错:superclassaccesscheck failed:classbutterknife.compiler.ButterKnifeProcessor$RScanner

问题描述
原因老项目使用了ButterKnife库,此库不支持在gradle8.0+环境编译,作者已不再维护
解决方法
迁移至Google的ViewBinding库或者用原生findViewById()方法,下图是开源库主页停止维护公告;
详见:https://github.com/JakeWharton/butterknife
在这里插入图片描述


12、APP启动闪退:java.lang.RuntimeException: Unable to get provider androidx.startup.InitializationProvider: java.lang.ClassNotFoundException: Didn’t find class “androidx.startup.InitializationProvider” on path: DexPathList[[zip file "/data/app/com..-1.apk"],nativeLibraryDirectories=[/data/app-lib/com..*-1, /system/lib]]

问题描述
在向下兼容Android 4.4时,启动闪退;但Android高版本运行正常;控制台报以上错误。也会报android java.lang.NoClassDefFoundError错误。
解决方法
在自定义的Application中添加MultiDex.install(context)

override fun attachBaseContext(base: Context?) {
        super.attachBaseContext(base)
        MultiDex.install(base)
    }

13、okhttp3 ProtocolException: unexpected end of stream

问题描述
在使用okhttp上传图片文件时报错:ProtocolException: unexpected end of stream;
解决方法
在官方Github仓库中有许多此类提问;其中这条最为接近https://github.com/square/okhttp/issues/8138,
解决方法是修改日志拦截器https://github.com/firedexofficial/signal-cli/blob/bad99253bc52bd16ae9065ed9f82bf62a952a2d9/lib/src/main/java/org/asamk/signal/manager/config/FixHttpLoggingInterceptor.java

可以看出如果你使用了“okhttp3.logging. HttpLoggingInterceptor” 官方提供的日志拦截器就会出现此问题,
我这里的解决方法是在上传文件接口前后分别 关闭、开启日志。

fun uploadImage(){
	mHttpLoggingInterceptor.level = HttpLoggingInterceptor.Level.NONE
	// 此处上传请求,开始执行
	// ....
	// 此处上传请求,结束
	mHttpLoggingInterceptor.level = HttpLoggingInterceptor.Level.BODY
}

14、Android Studio git 推送代码至GitHub报错

问题描述
在使用Android Studio git 管理界面 推送代码至GitHub时报错,但拉取代码是成功的,错误日志如下:

git -c core.quotepath=false -c log.showSignature=false push --progress --porcelain origin refs/heads/master:master --tags
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.InternalError: Error loading java.security file
	at java.base/java.security.Security.initialize(Security.java:106)
	at java.base/java.security.Security$1.run(Security.java:84)
	at java.base/java.security.Security$1.run(Security.java:82)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:318)
	at java.base/java.security.Security.<clinit>(Security.java:82)
	at java.base/sun.security.util.SecurityProperties.getOverridableProperty(SecurityProperties.java:57)
	at java.base/sun.security.util.SecurityProperties.privilegedGetOverridable(SecurityProperties.java:48)
	at java.base/sun.security.util.SecurityProperties.includedInExceptions(SecurityProperties.java:72)
	at java.base/sun.security.util.SecurityProperties.<clinit>(SecurityProperties.java:36)
	at java.base/sun.security.util.FilePermCompat.<clinit>(FilePermCompat.java:45)
	at java.base/java.security.AccessControlContext.<init>(AccessControlContext.java:269)
	at java.base/java.security.AccessController.createWrapper(AccessController.java:647)
	at java.base/java.security.AccessController.doPrivileged(AccessController.java:460)
	at java.base/java.util.ResourceBundle$ResourceBundleProviderHelper.loadResourceBundle(ResourceBundle.java:3614)
	at java.base/java.util.ResourceBundle.loadBundle(ResourceBundle.java:1837)
	at java.base/java.util.ResourceBundle.findBundle(ResourceBundle.java:1768)
	at java.base/java.util.ResourceBundle.findBundle(ResourceBundle.java:1722)
	at java.base/java.util.ResourceBundle.findBundle(ResourceBundle.java:1722)
	at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1656)
	at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1575)
	at java.base/java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1549)
	at java.base/java.util.ResourceBundle.getBundle(ResourceBundle.java:858)
	at java.base/sun.launcher.LauncherHelper$ResourceBundleHolder.<clinit>(LauncherHelper.java:126)
	at java.base/sun.launcher.LauncherHelper.getLocalizedMessage(LauncherHelper.java:486)
	at java.base/sun.launcher.LauncherHelper.abort(LauncherHelper.java:650)
	at java.base/sun.launcher.LauncherHelper.loadMainClass(LauncherHelper.java:810)
	at java.base/sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:689)
error: unable to read askpass response from '/home/qlt/.cache/Google/AndroidStudio2024.1/tmp/intellij-git-askpass-local.sh'
fatal: could not read Username for 'https://github.com': No such device or address

解决方法
将access token 添加至仓库地址,格式如下:

https://[access_token]@github.com/[user_name]/[repository_name].git

access_token: Github的access token
user_name: Github用户名
repository_name: 仓库名称

1x、原生

问题描述
在使用
解决方法
在使用

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

两块三刀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值