AndroidStudio报错:Caused by: java.lang.RuntimeException: Stub

当在Android应用中遇到'java.lang.RuntimeException: Stub!'错误,且使用了'DefaultHttpClient',可能是因为Android版本过高不支持。解决方法是在AndroidManifest.xml中添加<uses-library android:name=org.apache.http.legacy android:required=false/>,以允许应用使用该过时库。

如果你报的是这个错误:Caused by: java.lang.RuntimeException: Stub!

并且在你的类中有使用到"DefaultHttpClient"这个类,比如:

HttpClient httpClient = new DefaultHttpClient();    // 创建HttpClient对象

那么报错的原因很可能就是你的Android版本过高,不支持引用这个DefaultHttpClient类了。那解决方法也很简单,在AndroidManifest类中的application部分添加下面这行代码:

<uses-library android:name="org.apache.http.legacy" android:required="false"/>

例如:

<application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.TestFor">
        <uses-library android:name="org.apache.http.legacy" android:required="false"/>
        <activity
            android:name=".MainActivity"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

祝你解决这个Bug

Package: com.disney.shanghaidisneyland_goo v12800037 (12.8.0) PID: 30987 Foreground: Yes Process-Runtime: 6025 Timestamp: 2025-10-16 21:08:25.244+0800 Crash-Handler: com.sensorsdata.analytics.android.sdk.exceptions.SensorsDataExceptionHandler Loading-Progress: 1.0 Dropped-Count: 0 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.disney.shanghaidisneyland_goo/com.disney.wdpro.park.activities.SplashActivity}: java.lang.SecurityException: uid=10381, package=com.disney.shanghaidisneyland_goo cannot explicitly add accounts of type: com.disney.shanghaidisneyland_goo at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4624) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:4821) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:242) at android.app.servertransaction.TransactionExecutor.executeNonLifecycleItem(TransactionExecutor.java:138) at android.app.servertransaction.TransactionExecutor.executeTransactionItems(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:85) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:3110) at android.os.Handler.dispatchMessage(Handler.java:115) at android.os.Looper.loopOnce(Looper.java:298) at android.os.Looper.loop(Looper.java:408) at android.app.ActivityThread.main(ActivityThread.java:9952) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:613) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1074) Caused by: java.lang.SecurityException: uid=10381, package=com.disney.shanghaidisneyland_goo cannot explicitly add accounts of type: com.disney.shanghaidisneyland_goo at android.os.Parcel.createExceptionOrNull(Parcel.java:3370) at android.os.Parcel.createException(Parcel.java:3354) at android.os.Parcel.readException(Parcel.java:3337) at android.os.Parcel.readException(Parcel.java:3279) at android.accounts.IAccountManager$Stub$Proxy.addAccountExplicitly(IAccountManager.java:1267) at android.accounts.AccountManager.addAccountExplicitly(AccountManager.java:1023) at com.disney.wdpro.httpclient.authentication.AuthenticationManager.getAccount(AuthenticationManager.java:288) at com.disney.wdpro.httpclient.authentication.AuthenticationManager.getUserSwid(AuthenticationManager.java:471) at com.disney.wdpro.httpclient.authentication.AuthenticationManager.isUserAuthenticated(AuthenticationManager.java:518) at com.disney.wdpro.commons.BaseActivity.isUserLoggedIn(BaseActivity.java:156) at com.disney.wdpro.park.activities.SplashActivity.initSensorAnalyticsSdk(SplashActivity.java:241) at com.disney.wdpro.park.activities.SplashActivity.executeNextTask(SplashActivity.java:395) at com.disney.wdpro.park.activities.SplashActivity.handlerPrivacyPolicyAndPermission(SplashActivity.java:196) at com.fort.andjni.JniLib.cV(Native Method) at com.disney.wdpro.park.activities.SplashActivity.onCreate(Unknown Source:23) at android.app.Activity.performCreate(Activity.java:9391) at android.app.Activity.performCreate(Activity.java:9363) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1541) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:4598) ... 13 more
最新发布
10-25
FATAL EXCEPTION: main Process: com.trassion.audiopath, PID: 10264 java.lang.RuntimeException: Unable to start service com.trassion.audiopath.rpc.RpcService@e57ff2e with Intent { cmp=com.trassion.audiopath/.rpc.RpcService }: java.lang.SecurityException: Starting FGS with type connectedDevice callerApp=ProcessRecord{7de7bc1 10264:com.trassion.audiopath/u0a320} targetSDK=34 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE] any of the permissions allOf=false [android.permission.BLUETOOTH_ADVERTISE, android.permission.BLUETOOTH_CONNECT, android.permission.BLUETOOTH_SCAN, android.permission.CHANGE_NETWORK_STATE, android.permission.CHANGE_WIFI_STATE, android.permission.CHANGE_WIFI_MULTICAST_STATE, android.permission.NFC, android.permission.TRANSMIT_IR, android.permission.UWB_RANGING, USB Device, USB Accessory] at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:5452) at android.app.ActivityThread.-$$Nest$mhandleServiceArgs(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2613) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loopOnce(Looper.java:311) at android.os.Looper.loop(Looper.java:408) at android.app.ActivityThread.main(ActivityThread.java:9151) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:692) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:945) Caused by: java.lang.SecurityException: Starting FGS with type connectedDevice callerApp=ProcessRecord{7de7bc1 10264:com.trassion.audiopath/u0a320} targetSDK=34 requires permissions: all of the permissions allOf=true [android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE] any of the permissions allOf=false [android.permission.BLUETOOTH_ADVERTISE, android.permission.BLUETOOTH_CONNECT, android.permission.BLUETOOTH_SCAN, android.permission.CHANGE_NETWORK_STATE, android.permission.CHANGE_WIFI_STATE, android.permission.CHANGE_WIFI_MULTICAST_STATE, android.permission.NFC, android.permission.TRANSMIT_IR, android.permission.UWB_RANGING, USB Device, USB Accessory] at android.os.Parcel.createExceptionOrNull(Parcel.java:3242) at android.os.Parcel.createException(Parcel.java:3226) at android.os.Parcel.readException(Parcel.java:3209) at android.os.Parcel.readException(Parcel.java:3151) at android.app.IActivityManager$Stub$Proxy.setServiceForeground(IActivityManager.java:7547) at android.app.Service.startForeground(Service.java:776) at com.trassion.audiopath.rpc.RpcService.onStartCommand(RpcService.kt:59) at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:5434) ... 9 more Caused by: android.os.RemoteException: Remote stack trace: at com.android.server.am.ActiveServices.validateForegroundServiceType(ActiveServices.java:3078) at com.android.server.am.ActiveServices.setServiceForegroundInnerLocked(ActiveServices.java:2756) at com.android.server.am.ActiveServices.setServiceForegroundLocked(ActiveServices.java:2000) at com.android.server.am.ActivityManagerService.setServiceForeground(ActivityManagerService.java:15512) at android.app.IActivityManager$Stub.onTransact$setServiceForeground$(IActivityManager.java:13167)
07-18
当在Eclipse中Tomcat启动报错 `Caused by: java.lang.ClassNotFoundException: Properties` 时,可按以下方法解决: ### 检查依赖库 `Properties` 类属于Java标准库,通常是不会出现找不到的情况。但如果项目的类路径配置有问题,就可能导致这个错误。需要检查项目的构建路径,确保JRE系统库已正确添加。 步骤如下: 1. 右键点击项目,选择“Properties”。 2. 选择“Java Build Path”。 3. 在“Libraries”选项卡中,检查是否有JRE系统库。若没有,点击“Add Library”,选择“JRE System Library”,然后按照向导完成添加。 ### 检查Tomcat配置 Tomcat的配置可能影响类的加载。要确保Tomcat使用的JRE版本是正确的。 步骤如下: 1. 打开“Servers”视图。 2. 双击Tomcat服务器。 3. 在“Server Options”下,检查“Java Runtime Environment”是否选择了正确的JRE。 ### 清理和重建项目 有时候,项目的缓存文件可能会导致类加载问题。可以尝试清理和重建项目。 步骤如下: 1. 选择“Project” -> “Clean”。 2. 选择要清理的项目,点击“OK”。 ### 检查项目部署设置 确保项目正确部署到Tomcat中,且相关的依赖库也被正确部署。 步骤如下: 1. 打开“Servers”视图。 2. 右键点击Tomcat服务器,选择“Add and Remove”。 3. 确保项目已添加到“Configured”列表中,点击“Finish”。 ### 检查环境变量 确保系统的 `JAVA_HOME` 环境变量配置正确,且指向了合适的JDK版本。 ```bash # 查看 JAVA_HOME 环境变量 echo $JAVA_HOME ``` 如果 `JAVA_HOME` 配置不正确,可以按照以下步骤进行修改(以Linux为例): ```bash # 编辑环境变量配置文件 vi ~/.bashrc # 在文件中添加或修改 JAVA_HOME 变量 export JAVA_HOME=/path/to/your/jdk export PATH=$JAVA_HOME/bin:$PATH # 使配置生效 source ~/.bashrc ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值