BUG笔记

BUG笔记

为什么要写这个BUG笔记呢?
程序员与bug的相遇,到相知,最后到相忘,这些必经的过程,为了保持能过不相忘,还是选择了笔记.
对于我这种不擅长记忆的,只能提起我自己的烂笔头了.


1.
Error:(11) No resource identifier found for attribute ‘roundIcon’ in package

  • 问题原因: 无法找到定义的roundicon资源. roundicon是新版本中出现的,在老版中是没有roundicon的.
  • 解决方法:删除AndroidManifest.xml里的android:roundIcon=”@mipmap/ic_launcher_round”

2.
Error:(1, 0) Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment variable to “831b8e220b7bb0cbbb244f1328f1d4fd5da9”
Fix plugin version and sync project
Open File

  • 问题原因:
  • 解决方法:将
    dependencies {
       classpath 'com.android.tools.build:gradle:2.0.0-alpha3'
    }

改成

    dependencies {
        classpath 'com.android.tools.build:gradle:1.+'
    }

3.
Error:(24, 13) Failed to resolve: com.android.support:appcompat-v7:23.+
Install Repository and sync project
Show in File
Show in Project Structure dialog

  • 问题原因:
  • 解决方法:SDK Manager中 下载Google repository 和 Android support repository.

4.
FATAL EXCEPTION: main
Process: com.viking.jninetndk1, PID: 6145
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol “__aeabi_memclr4”
referenced by “/data/app/com.viking.jninetndk1-1/lib/arm/libjniLib.so “…
这里写图片描述

  • 问题原因: targetSdkVersion版本和NDK版本不匹配
  • 解决方法: 修改NDK和targetSdkVersion版本号.
    android studio :2.0 preview 4
    android sdk :android-sdk_r24.4.1-windows
    android ndk :android-ndk-r10e
    gradle : gradle-2.10-all
android {
    compileSdkVersion 23
    buildToolsVersion "23.0.3"
    defaultConfig {
        applicationId "com.viking.myapplication"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        ndk{
            moduleName "jniLib"
            abiFilters "armeabi","armeabi-v7a"
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.android.support:appcompat-v7:23.+'
}

5.
libcooee.so: has text relocations

  • 问题原因: 编译.so文件时使用了较低版本sdk,而project 中的配置 targetSdkVersion22 大于so编译时使用的sdkversion
  • 解决方法: 只需要把功能中的targetSdkVersion降低.
defaultConfig { 
    applicationId “com.example” 
    minSdkVersion 16 
    targetSdkVersion 22 
    versionCode 1 
    versionName “1.0” 
}

6.
Gradle version 2.10 is required. Current version is 2.8. If using the gradle wrapper,
try editing the distributionUrl in F:\work\qxueyou\gradle\wrapper\gradle-wrapper.
properties to gradle-2.10-all.zip


7.
A problem occurred evaluating project ‘:app’.
Failed to apply plugin [id ‘com.android.application’]
Gradle version 2.2 is required. Current version is 2.10. If using the gradle wrapper, try editing the distributionUrl in /Users/brindy/Projects/TestApp/gradle/wrapper/gradle-wrapper.properties to gradle-2.2-all.zip

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.8-all.zip 

8.
Error:(1, 0) Minimum supported Gradle version is 3.3. Current version is 3.2

  • 问题原因: 支持的Gradle最小版本为3.3 当前版本为3.2
  • 解决方法: 将
 dependencies {
        classpath 'com.android.tools.build:gradle:2.3.1'
 }

改成

dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0'
 }

9.

  • 问题原因: 网络请求更新gradle失败.
  • 解决方法:settings->Build,Execution,Deployment->Gradle 将use default gradle wrapper 改为use local gradle. 将使用网络的gralde设置成使用本地的gradle.

10.
unable to access android sdk add-on list
- 问题原因:
- 解决方法: 需要到Android Studio的bin目录下找到 idea.properties 这个文件。使用记事本或其他编辑器,打开这个文件,更改disable.android.first.run 的值等于true,即disable.android.first.run=true 如果没有则直接添加.


11.
‘It seems that you device does not support camera (or it is locked)’

  • 问题原因:相机权限的问题,Android6.0 之后需要动态配置权限
  • 解决方法:在手机端 setting -> app -> 权限 -> 添加权限

12.
FATAL EXCEPTION: main Process: com.viking.jnidemo, PID: 27114
java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file “/data/app/com.viking.jnidemo-1/base.apk”, zip file “/data/app/com.viking.jnidemo-1/split_lib_dependencies_apk.apk”, zip file “/data/app/com.viking.jnidemo-1/split_lib_slice_0_apk.apk”, zip file “/data/app/com.viking.jnidemo-1/split_lib_slice_1_apk.apk”],nativeLibraryDirectories=[/data/app/com.viking.jnidemo-1/lib/arm64, /vendor/lib64, /system/lib64]]] couldn’t find “libjniLib.so”

  • 问题原因: 无法找到libjniLib.so 库
  • 解决方法:将jnilibs的资源目录引入,sourcesets中添加 jniLibs.srcDirs=[‘libs’]
sourceSets {
        main {
            java.srcDirs = ['src/main/java', 'src/main/aidl']
            jniLibs.srcDirs=['libs'] 
            jni.srcDirs =[]
        }
    }

13.
FAILURE: Build failed with an exception.
Execution failed for task ‘:app:mergeDebugResources’.
Some file crunching failed, see logs for details
AAPT: libpng error: Not a PNG file
AAPT err(Facade for 197782496) : No Delegate set : lost message:libpng error: Not a PNG file

  • 问题原因:说文件不是PNG文件,可是没有说是哪一张图
  • 解决方法:在build.gradle里加入
android {
        ......
    aaptOptions {         cruncherEnabled = false     }

}

14.
Error:Execution failed for task ‘:app:compileDebugAidl’.

  • 问题原因: 这个是我AIDL文件从服务端复制到客户端,包名没有修改.
  • 解决方法: 仔细看看自己的AIDL文件,是否有写错什么?

15.
FATAL EXCEPTION: main
Process: com.viking.aidl2, PID: 28327
java.lang.SecurityException: Binder invocation to an incorrect interface
at android.os.Parcel.readException(Parcel.java:1602)
at android.os.Parcel.readException(Parcel.java:1555)
at com.viking.aidl2.PersonManager Stub S t u b Proxy.getPersonAge(PersonManager.java:107)
at com.viking.aidl2.MainActivity 2.onServiceConnected(MainActivity.java:41)atandroid.app.LoadedApk 2. o n S e r v i c e C o n n e c t e d ( M a i n A c t i v i t y . j a v a : 41 ) a t a n d r o i d . a p p . L o a d e d A p k ServiceDispatcher.doConnected(LoadedApk.java:1375)
at android.app.LoadedApk ServiceDispatcher S e r v i c e D i s p a t c h e r RunConnection.run(LoadedApk.java:1392)
at android.os.Handler.handleCallback(Handler.java:819)
at android.os.Handler.dispatchMessage(Handler.java:104)
at android.os.Looper.loop(Looper.java:210)
at android.app.ActivityThread.main(ActivityThread.java:5943)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:956)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:817)

  • 问题原因: binder调用了错误的接口.
  • 解决方法: 服务端与客户端都要有相同的接口(使用到的),这里的“相同”是指完全相同,包括包名,也就是说要在不同工程下AIDL文件建立相同的包名.

16.
FATAL EXCEPTION: main
Process: com.viking.testjar, PID: 21432
java.lang.UnsatisfiedLinkError: No implementation found for int com.viking.myapplication.JniMethod.NetInit() (tried Java_com_viking_myapplication_JniMethod_NetInit and Java_com_viking_myapplication_JniMethod_NetInit__)
- 问题原因:无法找到so库里面的方法.是没有加载so库导致的.
- 解决方法:添加加载so库即可.

static {
        System.loadLibrary("jniLib");
    }

17.
FATAL EXCEPTION:main
Process:com.xxx.xxx, PID: ….
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol “_aeabi_memclr4” referenced by “/data/app/com.viking.xxx-2/lib/arm/libxxx.so”…

  • 问题原因: 这可能是你sdk和ndk版本不匹配导致的.
  • 解决方法: 将sdk和ndk改成匹配的就可以了,至于什么版本与什么版本匹配,可以上网找找.


    18.
    Fatal signal 11 (SIGSEGV), code 1, fault addr xxx in tid xxx (g.xxxxx)
    这里写图片描述

  • 问题原因: 1.jni开发中出现空指针问题. 2.jni开发中出现索引越界问题. 3.如果排除是代码问题,那可能是你线程问题.jni开发中的env是每个线程都会创建一个, 其他线程不能用当前线程的env,这可能导致出现上面的问题.
  • 解决方法:进程中没个线程都有一个env,但是只有个JavaVM .可以通过JavaVM来创建env.具体可以参考:http://blog.csdn.net/viking_xhg/article/details/78727273


    19.
    (1).unspecified on project app resolves to an APK archive which is not supported as a compilation dependency
    (2).Error:Library projects cannot set applicationId. applicationId is set to ‘package_name’ in default config.

  • 问题原因: 存在两个Module,其中一个Module依赖另一个Module而导致;
  • 解决方法:(1) build.gradle -> apply plugin: ‘com.android.application’ (将当前程序编译成apk) 改为 apply plugin: ‘com.android.library’ (当前程序编译为library库); (2)删除 builde.gradle — android — defaultConfig中的 applicationId “com.viking.swgetdeviceinfo” ;


    20.
    remount of system failed: Permission denied
    remount failed

  • 问题原因: 挂载system失败,权限不够.
  • 解决方法: adb root ,通过使用root权限运行remount.
    这里写图片描述


    21.
    Error:Cause: buildToolsVersion is not specified.

  • 问题原因: build.gralde中无buildToolsVersion 属性
  • 解决方法: 添加 buildToolsVersion “27.0.1”


    22.
    03-22 01:34:04.123 5009-5009/com.viking.myapplication E/dalvikvm: dlopen(“/data/app-lib/com.viking.myapplication-1/libjniLib.so”) failed: dlopen failed: cannot locate symbol “sigemptyset” referenced by “libjniLib.so”…
    03-22 01:34:04.153 5009-5009/com.viking.myapplication W/dalvikvm: Exception Ljava/lang/UnsatisfiedLinkError; thrown while initializing Lcom/viking/myapplication/NetSDK;
    03-22 01:34:04.153 5009-5009/com.viking.myapplication D/AndroidRuntime: Shutting down VM
    03-22 01:34:04.153 5009-5009/com.viking.myapplication W/dalvikvm: threadid=1: thread exiting with uncaught exception (group=0xada5dba8)
    03-22 01:34:04.163 5009-5009/com.viking.myapplication E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.viking.myapplication, PID: 5009
    java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol “sigemptyset” referenced by “libjniLib.so”…
    at java.lang.Runtime.loadLibrary(Runtime.java:364)
    at java.lang.System.loadLibrary(System.java:526)
    at com.viking.myapplication.NetSDK.(NetSDK.java:24)
    at com.viking.myapplication.MainActivity.onCreate(MainActivity.java:14)

  • 问题原因:
    1. 可能原因1: NDK版本:
      32bits小机用:android-ndk32-r10b-linux-x86_64.tar.bz2
      64bits小机用:android-ndk64-r10b-linux-x86_64.tar.bz2
      64bits编译出来的APK在S3上面运行,会有闪退的现象.
    2. 可能原因2:
      造成问题的原因不是NDK的版本,而是目标平台的版本,我这运行在android 4.4上面。Android-19是在平台 头上将 Sigemptyset()(和许多其他函数)声明为内联的最后一个平台版本。因此,设备上的系统libc不包含这些功能。所以应该使用正确的目标平台来允许代码在旧的设备上运行。
  • 解决方法: 只需要在你的应用程序中application.mk文件中添加 app_Platform:=Android-19。


    23.

  • 问题原因:

  • 解决方法:


    24.

  • 问题原因:

  • 解决方法:


    25.

  • 问题原因:

  • 解决方法:


    26.

  • 问题原因:

  • 解决方法:


    27.

  • 问题原因:

  • 解决方法:


    28.

  • 问题原因:

  • 解决方法:


    29.

  • 问题原因:

  • 解决方法:


    30.

  • 问题原因:

  • 解决方法:


    31.

  • 问题原因:

  • 解决方法:


    32.

  • 问题原因:

  • 解决方法:


    33.

  • 问题原因:

  • 解决方法:


    34.

  • 问题原因:

  • 解决方法:


    35.

  • 问题原因:

  • 解决方法:


    36

  • 问题原因:

  • 解决方法:


    37.

  • 问题原因:

  • 解决方法:


    38.

  • 问题原因:

  • 解决方法:


    39.

  • 问题原因:

  • 解决方法:


    40.

  • 问题原因:

  • 解决方法:


    41.

  • 问题原因:

  • 解决方法:


    42.

  • 问题原因:

  • 解决方法:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值