gpt4 book ai didi

java - android list 中没有默认构造函数

转载 作者:行者123 更新时间:2023-12-01 10:37:10 25 4
gpt4 key购买 nike

我的应用程序不断崩溃,并显示:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.Hugler/com.Hugler.ActMain}: 
android.content.ActivityNotFoundException: Unable to find explicit activity class {/com.Hugler.CB.SoundClsRslt};
have you declared this activity in your AndroidManifest.xml?

我已在 Android list 文件中声明了该 Activity ,但出现错误“'com.Hugler.CB.SoundClsRslt'没有默认构造函数”

<uses-feature android:name="android.hardware.usb." />
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SEND_SMS"></uses-permission>
<uses-permission android:name="android.permission.RECEIVE_SMS"></uses-permission>

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/Hugler"
android:theme="@android:style/Theme.Light.NoTitleBar.Fullscreen" >
<activity
android:name="com.Hugler.ActMain"
android:label="@string/Hugler" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.Hugler.CB.SoundClsRslt" />
</application>

这是我的 SoundClsRslt 代码:

    package com.Hugler.CB;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import java.nio.ShortBuffer;
import java.nio.channels.FileChannel;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import com.Hugler.ActMain;
import com.Hugler.TeleOp.TeleOp;
import com.SoundClassification.SoundClassification.ISC;

import android.app.Activity;
import android.content.Intent;
import android.os.Environment;
import android.telephony.SmsManager;

public class SoundClsRslt extends Activity implements ISC {

public static int interact;

private ActMain m_pMain;
private static int m_iID;
private static int m_iID1;
private FileOutputStream _fLog;

public SoundClsRslt(ActMain pMain) {
m_pMain = pMain;
m_iID = 0;
m_iID1 = 0;
_fLog = null;
}

public void StartLog(String sFile) {
if (_fLog != null)
return;
try {
_fLog = new FileOutputStream(sFile);
String sHdr = "Time,Event,Confidence\n";
_fLog.write(sHdr.getBytes());
} catch (Exception e) {
e.printStackTrace();
}
}

public void OnLog(String sLog) {
}

public void OnLog2(String sLog) {
}

public void OnSegment(double[] pBuf, int iLen, String sCls, double dConf) {
sCls = sCls.toLowerCase(Locale.getDefault());
{
if (sCls.contains("glass")) {

m_iID1++;
m_pMain.Show2(m_iID1 + "." + sCls);
m_pMain.Show3("" + dConf);

//convert short to byte
ByteBuffer myByteBuffer = ByteBuffer.allocate(iLen * 2);
myByteBuffer.order(ByteOrder.LITTLE_ENDIAN);

//open pcm
ShortBuffer myShortBuffer = myByteBuffer.asShortBuffer();
for (int i = 0; i < iLen ; i++) {
myShortBuffer.put((short)(pBuf[i]));
}
File file;

FileChannel out = null;

try {
String filepath = Environment.getExternalStorageDirectory().getPath();
SimpleDateFormat pSDF = new SimpleDateFormat("yyyyMMdd_HH_mm_ss", Locale.UK);
String sNow = pSDF.format(new Date());
file = new File(filepath,"AudioRecorder" + "/segment_" + sNow + ".pcm");

Intent intent = getIntent();

SimpleDateFormat smsdate = new SimpleDateFormat("yyyy/MM/dd_HH:mm:ss", Locale.US);
String messageToSend = "Glass breaking sound detected at "+ smsdate.format(new Date()) + " (yyyy/MM/dd_HH:mm:ss)";
String number = intent.getExtras().getString("numberfrom");
SmsManager.getDefault().sendTextMessage(number, null, messageToSend, null, null);

// if file doesnt exists, then create it
if (!file.exists()) {
file.createNewFile();
}
out = new FileOutputStream(file).getChannel();

//write to pcm
out.write(myByteBuffer);
//close pcm
out.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (out != null) {
out.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}

} else {
m_iID++;
m_pMain.Show0(m_iID + "." + sCls);
m_pMain.Show1("" + dConf);
}
}
TeleOp.SendInteraction();

if (_fLog != null) {
SimpleDateFormat pSDF = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
String sNow = pSDF.format(new Date());
String sLog = sNow + "," + sCls + "," + dConf + "\n";
try {
_fLog.write(sLog.getBytes());
} catch (IOException e) {
e.printStackTrace();
}
}
}
}

如何以及在哪里添加空构造函数?提前致谢! :)

最佳答案

不需要您的 public SoundClsRslt(ActMain pMain) 构造函数,因为您不会自己实例化此类(您不会显式实例化 Activity 子类),并且 Android 不会使用该构造函数来创建新 Activity 。

如果删除该构造函数(允许生成默认的无参数构造函数),或者仅删除其参数,您将拥有一个无参数构造函数,这正是您所需要的。

关于java - android list 中没有默认构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34606425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com