以2.2.5版本为例

一、下载FongMi版仓库

仓库地址:https://github.com/FongMi/TV

首先修改gradle/wrapper/gradle-wrapper.properties,用于加速gradle的下载:

distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip

改成

distributionUrl=https\://mirrors.cloud.tencent.com/gradle/gradle-7.4.2-bin.zip

二、修改部分代码

用Andirod Studio打开,需要配置两处地方。

1、file--setting--  --Android SDK,安装Android14.0(api34),SDK tool如图所示:
2、file--setting--  --Gradle。Gradle指定好具体位置,安装Gradle JDK为JDK17(或者JDK17,打包apk必须17)

686a0ae8fa052603d2615e4ed73992c0.png

f43ef4a9fce8c529754e961d0ebdf073.png

建议下载amazon-corretto版本:https://corretto.aws/downloads/resources/17.0.9.8.1/amazon-corretto-17.0.9.8.1-windows-x64-jdk.zip

3、解决加速及依赖问题

在同步的过程中,会出现下载依赖慢,某些包下载不了等问题,解决方法如下:
项目根目录下setting.gradle文件中,添加aliyun的镜像,放在前面,

maven { setUrl("https://maven.aliyun.com/repository/central") }
maven { setUrl("https://maven.aliyun.com/repository/jcenter") }
maven { setUrl("https://maven.aliyun.com/repository/google") }
maven { setUrl("https://maven.aliyun.com/repository/gradle-plugin") }
maven { setUrl("https://maven.aliyun.com/repository/public") } 

6e4bbe55be38517c789c70b3f66f110c.png

4、内置播放源

4.1,找到点播源的加载位置,TV\app\src\main\java\com\fongmi\android\tv\api\config\LiveConfig.java 文件

修改hasUrl方法。

public static boolean hasUrl() {
    // 由于直播按钮依赖config里的url参数,内置后判断未空不现实直播按钮,这里改成不判断。
    return true; // getUrl() != null && getUrl().length() > 0;
}

cb7abc0ba432e1387d49817a92abb96b.png

修改loadConfig方法。

String url = config.getUrl();
if (TextUtils.isEmpty(url)) {
    url = "https://www.mylucas.com.cn/static/tvbox/videoSourceTrial.json";
  // 添加以下代码,解决内置源时,投屏播放问题,给定一个配置,写入本地数据库,标记一个name(名字“源已内置”可以随便取,但一定要有,type为1,表示直播)
    Config.find(url, 1).name("源已内置").update();
}
parseConfig(Decoder.getJson(url), callback);

2a09dc69d1625d1ad0d96291e2dd24d6.png

4.2、找到直播源的加载位置,TV\app\src\main\java\com\fongmi\android\tv\api\config\VodConfig.java文件修改loadConfig方法。

String url = config.getUrl();
if (TextUtils.isEmpty(url)) {
    url = "https://www.mylucas.com.cn/static/tvbox/videoSourceTrial.json";
    // 添加以下代码,解决内置源时,投屏播放问题,给定一个配置,写入本地数据库,标记一个name(名字“源已内置”可以随便取,但一定要有,type为0,表示点播)
    Config.find(url, 0).name("源已内置").update();
}
checkJson(Json.parse(Decoder.getJson(url)).getAsJsonObject(), callback);

67364f462c827ab687ce2ea57df279ae.png

4.3,修改设置弹框里的初始化逻辑,避免暴露内置源的地址到设置框。修改代码TV\app\src\mobile\java\com\fongmi\android\tv\ui\dialog\ConfigDialog文件里的initView方法

private void initView() {
    binding.name.setText(getConfig().getName());
    // 这里判断有名字就不回写到设置框里,例如名字是:源已内置
    if (TextUtils.isEmpty(getConfig().getName())) {
        binding.url.setText(ori = getConfig().getUrl());
    }
    binding.input.setVisibility(edit ? View.VISIBLE : View.GONE);
    binding.url.setSelection(TextUtils.isEmpty(ori) ? 0 : ori.length());
}

68f3f403da3e923ec9920dffb2eda064.png

5、打包,选择build-generate signed apk,创建一个签名文件,选择版本类型,手机版选择mobileJavaArm64_v8aRelease版本。

三、参数设置

1、TV\app\src\main\res\values-zh-rCN\strings.xml设置app_name,或者在编辑器里面直接搜索关键词name="app_name"

<!-- App -->
<string name="app_name">Lucas2.2.4</string>
<string name="app_exit">再按一次返回键退出</string>

2、TV\app\src\main\java\com\fongmi\android\tv\Setting.java取消自动更新功能

public static boolean getUpdate() {
    // return Prefers.getBoolean("update", true);
    return false;
}

3、TV\app\build.gradle设置打包的apk名字,如下,打包名字mobile-java-arm64_v8a_lucas_2.2.5.apk

android.applicationVariants.configureEach { variant ->
    variant.outputs.configureEach { output ->
        outputFileName = "${variant.productFlavors[0].name}-${variant.productFlavors[1].name}-${variant.productFlavors[2].name}_lucas_2.2.4.apk"
    }
}
最后修改:2024 年 10 月 29 日
如果觉得我的文章对你有用,请随意赞赏