1. 错误:对findViewById的引用不明确

情景:在导入一个第三方 jar 包后,编译出现如下错误

1
2
3
4
错误: 对findViewById的引用不明确
Activity 中的方法 findViewById(int) 和 AppCompatActivity 中的方法 <T>findViewById(int) 都匹配
其中, T是类型变量:
T扩展已在方法 <T>findViewById(int)中声明的View

原因: jar 包和工程使用的 sdk 版本不同

解决办法:在 module 下的 build.gradle 文件里添加如下代码

1
2
3
4
5
6
7
8
9
10
11
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
//这里指定需要统一的依赖版本,这里统一为26.0.0-alpha1
details.useVersion '26.0.0-alpha1'
}
}
}
}

然后 sync 一下就行了。

2. W/System.err: at android.os.Parcel.readException(Parcel.java:1472)

参考文档: 关于使用AIDL出现空指针的解决办法

情景: 在使用PppoeManager.setMode()PppoeManager.connect()过程中,报如下错误

1
2
3
4
5
6
W/System.err:     at android.os.Parcel.readException(Parcel.java:1472)
at android.os.Parcel.readException(Parcel.java:1426)
at android.net.pppoe.IPppoeManager$Stub$Proxy.setPppoeMode(IPppoeManager.java:318)
at android.net.pppoe.PppoeManager.setPppoeMode(PppoeManager.java:115)
at com.example.eileen.boxsetting.PppoeConnectTask.doInBackground(PppoeConnectTask.java:50)
at com.example.eileen.boxsetting.PppoeConnectTask.doInBackground(PppoeConnectTask.java:13)

原因: 简单说来,就是在远程方法没有执行完成的情况下,transact()执行完成了,然后抛出了一个空指针。

解决办法: 我没有解决办法,啊!