项目调试

1.AnyRTC-RTMP项目调试

image.png

2.凡信3.1项目调试

运行报错:


image.png

此错误为安全性报错。在Android6.0之后Android加入的动态权限,除了在清单文件加入权限声明,还要在Java代码中加入相应申请。此错误为缺少读取手机状态权限。报错的位置如下图标记区域:

image.png

此处是初始化红包上下文的。因为动态申请权限需要用到activity,而此段代码放在了application下。所以可将此段代码放入MainActivity下。并加入以下代码:


     private void checkPermission() {
         if (ContextCompat.checkSelfPermission(this,
                 Manifest.permission.READ_PHONE_STATE)
                 != PackageManager.PERMISSION_GRANTED) {

             if (ActivityCompat.shouldShowRequestPermissionRationale(this,
                     Manifest.permission.READ_PHONE_STATE)) {

             } else {

                 ActivityCompat.requestPermissions(this,
                         new String[]{Manifest.permission.READ_PHONE_STATE},
                         1);
             }
         }else {
             //red packet code : 初始化红包上下文,开启日志输出开关
             RedPacket.getInstance().initContext(this);
             RedPacket.getInstance().setDebugMode(true);
         }
     }

此方法可在onCreate()方法中调用。
并在加入权限回调方法,如下:

 @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,
                                           @NonNull int[] grantResults) {
        PermissionsManager.getInstance().notifyPermissionsChange(permissions, grantResults);

        for (String p : permissions) {
            if (p.equals(Manifest.permission.READ_PHONE_STATE)) {
                if (grantResults.length > 0 && grantResults[0] == PackageManager
                        .PERMISSION_GRANTED) {
                    //red packet code : 初始化红包上下文,开启日志输出开关
                    RedPacket.getInstance().initContext(MainActivity.this);
                    RedPacket.getInstance().setDebugMode(true);
                }
            }
        }
    }

注意:其中
PermissionsManager.getInstance().notifyPermissionsChange(permissions, grantResults);
这行代码是作者自己写的权限管理类中的方法。是统一处理所有获取的权限。

此时可以运行项目。但是打包的时候出现很多错误。主要错误:

1.动画文件路径错误:如图
image.png
image.png

需要把报错的文件移入到drawable目录下,并把Java代码中引用的路径更正。

2.国际化文件错误
image.png

后来在stackoverflow搜索到添加如下代码忽略翻译即可。
解决方案:


image.png
3.jar包重复添加错误:

错误信息如下:

Error:Execution failed for task ':transformClassesWithJarMergingForRelease'.

com.android.build.api.transform.TransformException: java.util.zip.ZipException

Google搜索后在stackoverflow发现有人也需要多同样的问题。此问题


image.png

上图为解决此类问题的方案。
找到build.gradle文件中添加依赖的代码。如下

dependencies {
    compile project(':redpacketlibrary')
    compile project(':library')
    compile 'com.tencent.bugly:crashreport:2.2.0'
    //ucloud相关
    compile project(':ulive-android-sdk')
    compile 'com.jakewharton:butterknife:7.0.1'
    compile 'com.squareup.okhttp3:okhttp:3.3.1'
    compile fileTree(include: '*.jar', exclude: 'android-support-multidex.jar', dir: 'libs')
    compile project(':easeuilibrary')
    compile files('libs/android-support-multidex.jar')
}

将最后一行的compile files('libs/android-support-multidex.jar')删除即可,因为上面已经添加了此依赖。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,687评论 25 708
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,026评论 19 139
  • 今日完成简单项目的跑通调试: 1、pom.xml文件配置 只配置最基本的核心包 来源为www.mvnrespori...
    哎呦薇阅读 304评论 0 0
  • 这些年,我的创作经验 好久没有写过文章,为什么今天突然提笔?我想应该是因为昨天听了李笑来的在线分享吧。 在这里不得...
    鱼咔咔咔阅读 1,185评论 0 6
  • 路过她的国 我就住在那里 不分昼夜也不分四季 做她的国王 像只蜻蜓也像只蝴蝶 留在她的唇角 赶也赶不走 做她的眼眉...
    艺术家清樾阅读 319评论 2 6