Eclipse ADT到Android Studio迁移笔记

今天完成了从Eclipse到Android Studio的迁移,现在记录一下过程。满满的都是坑。

1、
由于这个项目比以前的都要复杂百倍,所以采用的是各个击破方法。
首先导入了两个lib的模块。
然后导入主程序的时候出现问题,这是因为,要通过单击Project通过Module对话框选择Eclipse才能正确导入。

Eclipse ADT到Android Studio迁移笔记_第1张图片

2、
接着提示AAPT2错误。
这个只能将.9.png改成.png。然后让美工改。

3、
然后提示

error: style attribute ‘@android:attr/windowEnterAnimationnot found.

改成

android:attr/windowEnterAnimation

4、
Program type already present

统一使用gradle,尽量不再使用Jar包解决依赖问题。

5、
由于包依赖太多,有些lib和app共用依赖,则百度了一篇名为《AndroidStudio中多个Module依赖同一个jar的解决方案》的文章,不过provided即将失效,改用compileOnly。

6、
警告: 最后一个参数使用了不准确的变量类型的 varargs 方法的非 varargs 调用

Method method  =  cls.getMethod( " hashCode " ,  new  Class[ 0 ]);  // 编译通过 
Method method  =  cls.getMethod( " hashCode " ,  null );  //  编译失败 

allMethod[i].invoke(dbInstance,  new  Object[]{});  //  编译通过 
allMethod[i].invoke(dbInstance,  null );  //  编译失败 

7、
so文件加载不到。
设置好jniLibs,然后切换到Android视图,验证你的jniLibs下面目录直接就是CPU-ABI目录,否则就无法打包进APK。

8、
自动化打包问题
Cannot set the value of read-only property ‘outputFile’
改成

android.applicationVariants.all { variant ->
        variant.outputs.all {
            outputFileName = "driver_${variant.productFlavors[0].name}_v${variant.versionName}.apk"
        }
    }

9、
混淆问题

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

前者其实是默认的混淆文件,后面的才是自己的。看来自身对Android项目结构还不是很熟悉。

10、
爆出错误提示

Warning:com.hyphenate.chat.EMHuaweiPushReceiver: can't find superclass or interface com.huawei.android.pushagent.api.PushEventReceiver

有华为和小米的,那就简单粗暴的取消掉提示

-dontwarn com.huawei.android.**
-dontwarn com.xiaomi.mipush.sdk.**

并且删除提示Specific twice包,因为这些包安卓默认配置文件已经自动包括了。

然后打开联系人又报错,于是看到了Eventbus,再加上:

-keepattributes *Annotation*
-keepclassmembers class ** {
    @org.greenrobot.eventbus.Subscribe ;
}
-keep enum org.greenrobot.eventbus.ThreadMode { *; }

你可能感兴趣的:(Android,SDK)