【安卓开发】【Android Studio】项目构建(Build)时报错:Integer Overflow

一、问题描述

在安卓项目中,构建(Build)失败并报错:xxxxx Integer Overflow(整型溢出)。

二、相关代码

刚开始以为是某个整数(例如控件、java类)不匹配造成的,检查如下代码:

Java类:

java 复制代码
public class Video_Activity10 extends AppCompatActivity {
    private MediaPlayer mPlayer = null;
    private SurfaceView sfv_show;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_video10);
        @SuppressLint({"MissingInflatedId", "LocalSuppress"}) SurfaceView sfv_show = findViewById(R.id.surface);
        SurfaceHolder surfaceHolder = sfv_show.getHolder();
        @SuppressLint({"MissingInflatedId", "LocalSuppress"}) Button btn_start = findViewById(R.id.btn1);
        @SuppressLint({"MissingInflatedId", "LocalSuppress"}) Button btn_pause = findViewById(R.id.btn2);
        @SuppressLint({"MissingInflatedId", "LocalSuppress"}) Button btn_stop = findViewById(R.id.btn3);
        mPlayer = MediaPlayer.create(Video_Activity10.this, R.raw.video_10);
        mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        mPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
                Toast.makeText(Video_Activity10.this,"视频播放完毕",Toast.LENGTH_LONG).show();
            }
        });
        btn_start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mPlayer.setDisplay(sfv_show.getHolder());
                mPlayer.start();
            }
        });
        btn_pause.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mPlayer.pause();
            }
        });
        btn_stop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                mPlayer.stop();
            }
        });

    }
}

xml布局文件:

java 复制代码
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".Video_Activity10">

    <!--    视 频 主 体    -->
    <SurfaceView
        android:id="@+id/surface"
        android:layout_width="wrap_content"
        android:layout_height="480dp"
        android:layout_gravity="center_horizontal"
        android:keepScreenOn="true"/>

    <!--    播 放 按 钮    -->
    <Button
        android:id="@+id/btn1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="@string/play"/>

    <!--    暂 停 按 钮    -->
    <Button
        android:id="@+id/btn2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="@string/pause"/>

    <!--    停 止 按 钮    -->
    <Button
        android:id="@+id/btn3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="@string/stop"/>

</LinearLayout>

没有问题。

之后,以为是内存限制过小导致,修改gradle.properties文件:

将这里的8000上调至10000:

java 复制代码
org.gradle.jvmargs=-Xmx8000m -Dfile.encoding=UTF-8

报错消失。

三、后续思考

However......之后,将上述的10000再改回8000,依旧没有报错。

可能是运行时出现的随机报错?

相关推荐
golang学习记7 小时前
VSCode多光标迎来重大更新
ide·vscode·编辑器
大圣编蚕8 小时前
初探 NDK 的世界:从零开始理解 Android 原生开发
android
云贝贝贝8 小时前
MySQL 慢查询定位与索引优化实战
android
夜雪一千8 小时前
如何取消PyCharm自动识别test开头文件并进入测试模式
ide·python·pycharm
骑着蜗牛撵大象3278 小时前
服务下线不再炸:分层关闭、TCP 存活探测与负载均衡排水的落地套路
android·tcp/ip·负载均衡·tcp·高可用·健康检查·优雅关闭
小李不困还能学9 小时前
PyCharm远程开发连接失败排查与解决
ide·python·pycharm
测试开发Kevin9 小时前
IDEA工程结构解析:项目、模块、库、Facet、Artifact (工件) 概念说明
java·ide·intellij idea
三少爷的鞋11 小时前
别再这么写协程了!Marcin Moskała 剖析的 几个常见协程误区与重构
android
mmsx12 小时前
Android 防二次打包第一道锁:签名校验与完整性校验
android·kotlin
mmsx12 小时前
Android 混淆不等于安全:二次打包链路完整走一遍
android·kotlin