美文网首页
关于多渠道打包(自己实践的)

关于多渠道打包(自己实践的)

作者: 郑永博 | 来源:发表于2019-07-08 16:52 被阅读0次

    添加海外oversea和海内china两个渠道

    1 设置build.gradle

    flavorDimensions "default"
       
        productFlavors {
            china {
                applicationId "com.cheezgroup.tosharing.myapplication"
                minSdkVersion 17
                targetSdkVersion 28
                versionCode 1
                versionName "1.0.0"
                dimension "default"
            }
            oversea {
                applicationId "com.cheezgroup.tosharing.myapplication.oversea"
                minSdkVersion 17
                targetSdkVersion 28
                versionCode 1
                versionName "1.0.0"
                dimension "default"
            }
        }
    

    2 复制两个main文件夹(包括它的子文件夹),分别更名为china,oversea(必须和上面的productFlavors保持一致)


    3 公共代码写在main目录下,例如MainActivity,而且china和oversea不能再有这个类


    4 china创建一个ChinaTestActivity类,则需要在oversea中创建一个空引用 throw new RuntimeException();否则将找不到类,其他方法变量类推,最后在china下的manifest文件里面声明该类

    public class ChinaTestActivity extends AppCompatActivity {
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_china_test);
    
        }
    }
    
    public class ChinaTestActivity extends AppCompatActivity {
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            throw new RuntimeException();
        }
    }
    
    

    5 现在已经可以不同的渠道引用不同的java类和values了,最后引用不同的dependencies,例如china下引用LeakCanary包,在build.gradle添加以下

     chinaApi 'com.squareup.leakcanary:leakcanary-android:1.5.1'
    

    6 可能不会自动提示 手动在china 包下的Java类中添加import和调用的方法

    
    import android.os.Bundle;
    import android.support.annotation.Nullable;
    import android.support.v7.app.AppCompatActivity;
    import com.squareup.leakcanary.LeakCanary;  // TODO 可能不会自动提示,手动添加
    /**
     * @author zhengyongbo
     * @since 2019-07-08 15:45
     */
    public class ChinaTestActivity extends AppCompatActivity {
        @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            LeakCanary.install(getApplication()); // TODO 可能不会自动提示,手动添加
            setContentView(R.layout.activity_china_test);
    
        }
    }
    

    相关文章

      网友评论

          本文标题:关于多渠道打包(自己实践的)

          本文链接:https://www.haomeiwen.com/subject/polahctx.html