LinPhone Android

LinPhone Android 由eclipse转Android Studio


步骤

一:按照正常方法将LinPhone项目导入Android Studio中

  • 在app ->build.gradle 中,将项目版本号 修改为你需要的版本
  • 在 dependencies 中,将 v4 依赖包修改为 v7
  • 可参考最后的附件 app ->build.gradle

二:去除 gcm 依赖

  • 1:删除 java -> org.linphone.gcm 下的两个类
  • 2:在 AndroidManifest.xml 文件中 将刚才删除的两个类对应的广播注册和服务注册标签删除
    广播注册标签为: org.linphone.gcm.GCMReceiver
    服务注册标签为: org.linphone.gcm.GCMService

三:修改过时方法

    1. 去除 gcm 依赖后,编译会出现错误,点击错误定位到错误代码,将过时方法注释或删除
    1. 示例如下, 总共会有三处方法需要修改, 其余两处方法修改与示例相同
public static Notification createMessageNotification(Context context, String title, String msg, PendingIntent intent) {
        Notification notif = new Notification();
//      notif.icon = R.drawable.chat_icon_over;
//      notif.iconLevel = 0;
//      notif.when = System.currentTimeMillis();
//      notif.flags &= Notification.FLAG_ONGOING_EVENT;
//
//      notif.defaults |= Notification.DEFAULT_VIBRATE;
//      notif.defaults |= Notification.DEFAULT_SOUND;
//      notif.defaults |= Notification.DEFAULT_LIGHTS;
//
//      notif.setLatestEventInfo(context, title, msg, intent);

        return notif;
    }

四:number of method references in a .dex file cannot exceed 64K. Learn how to resolve this 错误解决

  • 完成上面三步后,编译出现 .dex 错误,这是方法超过 64K 导致的异常
  • 1:在 app ->build.gradle ->dependencies 标签中 添加

    compile ‘com.android.support:multidex:1.0.1’

  • 2:在 app ->build.gradle ->defaultConfig 标签中 添加

    multiDexEnabled true

  • 3: 在 AndroidManifest.xml 中的 application 标签中添加

    android:name=”android.support.multidex.MultiDexApplication”

  • 4: 如果你的应用程序继承 Application , 那么你需要重写Application attachBaseContext方法

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

  • 附上链接

    http://www.jianshu.com/p/f68b0b070c31

五:Unexpected exception in dex writer thread 异常解决

  • jvm 内存不够,在 app ->build.gradle 中添加如下标签
  dexOptions {
        incremental true
        javaMaxHeapSize "4g"
    }

附件

  • 最后贴上解决后的 app ->build.gradle 文件
apply plugin: 'com.android.application'
 android {
     compileSdkVersion 23
    buildToolsVersion "25.0.1"
    dexOptions {
        incremental true
        javaMaxHeapSize "4g"
    }
    defaultConfig {
        applicationId "org.linphone"
        minSdkVersion 16
        targetSdkVersion 23
        multiDexEnabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
}
dependencies {
    compile 'com.android.support:appcompat-v7:23.4.0'
    compile 'com.google.android.gms:play-services:+'
    compile 'com.android.support:multidex:1.0.1'
}

你可能感兴趣的:(voip)