Android Studio开发常见问题及解决办法

1.Android 4.x中 multidex相关问题

在android 4.x以上,遇到64K问题通常是要添加依赖:

com.android.support:multidex:1.0.1

并且multiDexEnabled设置为true

 defaultConfig {
        multiDexEnabled true
    }

不过在4.x的手机上仅仅添加这些是回报如下错误:
Android Studio开发常见问题及解决办法_第1张图片
java.lang.NoClassDefFoundError: dagger.internal.Preconditions 这个问题,此时需要让Application 改为继承MulitDexApplication或添加MultiDex.install(this); 这个方法即可

  @Override
protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);     

}

2.java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

手机:酷派
版本:Android 4.4.
今天重修构建了一下工程,从MainActivity继承Activity修改成了extends SupportFragment(一个Fragment相关的框架)
结果爆了如下的错误:
java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.Android Studio开发常见问题及解决办法_第2张图片

解决:
原因是修改了继承的Activity,不同的兼容包中使用了不同的theme,所以就要使用与其配合的AppCompat的theme

  将
  android:theme="@android:style/Theme.Holo.Light.NoActionBar"
  修改为
  android:theme="@style/Theme.AppCompat.NoActionBar"

问题解决。

3.Error:(1, 0) Plugin with id ‘com.android.application’ not found.

这次是下载了腾讯的X5WebView工程Demo直接运行在了AS中爆了如下错误:

这里写图片描述

Error:(1, 0) Plugin with id ‘com.android.application’ not found.
查了一下这个错误,是说gradle中没有buildscript{}
一查看确实没有 buildscript{}Android Studio开发常见问题及解决办法_第3张图片
添加:

buildscript {
    repositories {
        mavenCentral() // or jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.0'
    }
}

build一下,问题解决。

4.java.lang.ClassCastException: android.graphics.drawable.BitmapDrawable cannot be cast to android.graphics.drawable.AnimationDrawable

背景:今天重构了项目 将之前同事写的项目重构了一下,并且用了组件化单工程多Module方案,在移植过程中,点击登录会出现一个Dialog加载对话框,弹出框爆的这个错误
Android Studio开发常见问题及解决办法_第4张图片
后来经过查验,发现是在xml布局中引用的这个public_loading.xml与public_loading.png重名了,后来将public_loading.xml改成了public_loading_animation.xml 到这里重新运行 解决问题。Android Studio开发常见问题及解决办法_第5张图片

  1. No implementation found for****
    ===
    报错图片
    最近在重构以前的代码,准备对crop这个框架二次封装开源道github上,但是在封装修改样式过后,发布到github调用这个库使用不了,原因是里面有jni和 so,需要包名一致,我们知道so是改不了的。。 难受。。
    原因:.so中函数声明涉及到的package name和class name与调用它的package name和class name不符。

解决方法:改变工程中的package name和class name,使其与.so文件中函数签名提示的一致。

  1. 注: 某些输入文件使用了未经检查或不安全的操作。
    ===

注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
Finished with error: Gradle task assembleDebug failed with exit code 1

你可能感兴趣的:(Android,常见问题)