当试图打开发电机时,应用程序崩溃了

时间:2018-02-02 18:21:03

标签: java android

我尝试在1个应用程序中构建扫描仪和生成器。当我按下发电机按钮时,它突然崩溃。我的日志中没有任何错误或警告。

这是我的生成器代码:

public class GeneratorActivity extends AppCompatActivity {

EditText text;
Button gen_btn;
ImageView image;
String text2Qr;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_generator);
    text = findViewById(R.id.text);
    gen_btn = findViewById(R.id.gen_btn);
    image = findViewById(R.id.image);
    gen_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            text2Qr = text.getText().toString().trim();
            MultiFormatWriter multiFormatWriter = new MultiFormatWriter();
            try{
                BitMatrix bitMatrix = multiFormatWriter.encode(text2Qr, BarcodeFormat.QR_CODE,200,200);
                BarcodeEncoder barcodeEncoder = new BarcodeEncoder();
                Bitmap bitmap = barcodeEncoder.createBitmap(bitMatrix);
                image.setImageBitmap(bitmap);
            }
            catch (WriterException e){
                e.printStackTrace();
            }
        }
    });
}}

MainActivity代码:

public class MainActivity extends AppCompatActivity {

Button gen, scan;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    gen = findViewById(R.id.gen);
    scan = findViewById(R.id.scan);
    gen.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent gIntent = new Intent(MainActivity.this, GeneratorActivity.class);
            startActivity(gIntent);
        }
    });
    scan.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent rIntent = new Intent(MainActivity.this, ReaderActivity.class);
            startActivity(rIntent);
        }
    });
}}

有人知道如何解决这个问题吗?请帮帮我。

更新

这是我的生成器的xml代码:

<EditText
    android:id="@+id/text"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_marginBottom="415dp"
    android:layout_marginTop="50dp"
    android:hint="@string/enter_text_to_generate"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/view" />

<Button
    android:id="@+id/gen_btn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="33dp"
    android:text="@string/generate"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/text" />

<view
    android:id="@+id/view"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_marginBottom="48dp"
    android:layout_marginTop="155dp"
    android:background="@android:color/black"
    app:layout_constraintBottom_toTopOf="@+id/text"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<LinearLayout
    android:id="@+id/linearLayout"
    android:layout_width="0dp"
    android:layout_height="293dp"
    android:layout_below="@+id/view"
    android:layout_marginEnd="10dp"
    android:layout_marginStart="10dp"
    android:layout_marginTop="188dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <ImageView
        android:id="@+id/image"
        android:layout_width="348dp"
        android:layout_height="match_parent"
        android:contentDescription="@string/todo" />
</LinearLayout>

我希望这会对我的问题有所帮助:(

更新:这是由我的愚蠢错字修复;)。非常感谢所有回答我这个问题的人。我不能说我多么感激。特别是对于我已经投票给正确答案的人。你真的是英雄!

2 个答案:

答案 0 :(得分:0)

enter image description here 请不要投票。我知道这不是一个解决方案,但这肯定有助于我们确定问题。

这是关于在logcat中查找错误。可能曾经 Ricardo F. Seikka 分享logcat,我可以删除这个答案。

在Windows(10)上,这是我在logcat没有捕获错误时所做的事情(实际发生的是当出现错误时logcat被清除(仅针对某些错误)并且因此生成了新的logcat我们无法在logcat中看到错误)

@Ricardo F. Seikka(我猜你也在使用Windows)

  • 启动您的应用
  • 点击终端

    中的命令运行下面的按钮

    &#34; C:\用户\ QWERTY \应用程序数据\本地\的Android \ SDK \平台工具\ adb.exe&#34; logcat -c

(而不是qwerty添加你的名字/寻找adb.exe)这将清除logcat。   - 单击按钮后,运行以下命令

"C:\Users\Dell\qwerty\Local\Android\sdk\platform-tools\adb.exe" logcat -d > "C:\Users\Dell\qwerty\log.txt"
  • 然后打开log.txt,搜索致命的,接下来的几行应该会让你知道是什么问题。

如果您正在使用任何其他操作系统,请搜索adb.exe并尝试我的建议。

答案 1 :(得分:0)

确定。我遇到了你的问题! (如果在问题中不是拼写错误......)

在您的xml中,您声明了一个名为view的组件,当正确的View为大写时:

<View
    android:id="@+id/view"
    android:layout_width="0dp"
    android:layout_height="0dp"
    android:layout_marginBottom="48dp"
    android:layout_marginTop="155dp"
    android:background="@android:color/black"
    app:layout_constraintBottom_toTopOf="@+id/text"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

如果它能解决您的问题,请告诉我