应用程序打开了太多文件 - Android

2024-01-02

我有一个名为 calcDays() 的方法,它一遍又一遍地循环数据库,直到满足特定条件。问题是 Android studio 告诉我文件已用完。我意识到我正在打开数据库而不是关闭它们,这就是我遇到错误的原因。但是,我似乎无法修复这个错误。

具有 calcDays() 方法的类

    package com.example.brandon.netflixcalculator;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.sql.SQLException;
import java.util.Calendar;

public class MainActivity extends Activity {

    private Button b1;
    private Button b2;
    private Button b3;
    private Button b4;
    private TextView daysRemaining, showName;;
    private int x;
    private int[] dailyMin = new int[7];
    private String[] dailyPercent = {"100%", "75%", "50%", "25%", "0%"};
    private double[] percent = {1, .75, .5, .25, 0};
    private DatabaseHelper db;
    String[] stringDays = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"};
    private File viewingInfo;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setOnButton1ClickListener();
        setOnButton2ClickListener();
        setOnButton3ClickListener();
        setOnButton4ClickListener();
        daysRemaining = (TextView)findViewById(R.id.textViewRemainingDays);
        showName = (TextView)findViewById(R.id.textViewCurrentShow);
        if(!ifFileExists()){
            createDBFirstTime();
        }
        else{
            db = new DatabaseHelper(getApplicationContext());
            daysRemaining.setText(String.valueOf(calcDays()));
            showName.setText(db.getShowName());
        }
    }

    public void createDBFirstTime(){
        System.out.println("Database deleted? " + this.deleteDatabase("viewing_database"));
        db = new DatabaseHelper(this.getApplicationContext());
        for(int i = 0; i < stringDays.length; i++){
            db.insertDataViewing(stringDays[i], 0, "100%");
        }
        db.insertDataShow("N/A", 0, 0, 0);
        try {
            FileOutputStream fos = openFileOutput("madeDB", MODE_PRIVATE);
            try {
                fos.write("true".getBytes());
                fos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
    }


    public boolean ifFileExists(){
        File file = getApplicationContext().getFileStreamPath("madeDB");
        if(file.exists())
            return true;
        else return false;
    }


    public int calcDays() {
        int seasons, episodes, epiLength;
        int[] info = new int[3];
        for(int i = 0; i < info.length; i++){
            info[i] = db.extractShowInfo()[i];
        }
        seasons = info[0];
        episodes = info[1];
        epiLength = info[2];
        int totalTime = (seasons * episodes * epiLength);
        System.out.println(seasons);
        int dayOfWeek = getDay();
        int days = 0;
        int y;
        double z;
        while (totalTime > 0) {
            y = db.getMin(dayOfWeek);
            z = db.getPercentage(dayOfWeek);
            totalTime -= y*z;
            dayOfWeek++;
            if (dayOfWeek == 7) {
                dayOfWeek = 0;
            }
            days++;
        }

        return days;
    }

    public int getDay() {
        Calendar calendar = Calendar.getInstance();
        int day = calendar.get(Calendar.DAY_OF_WEEK);
        return day;
    }


    public void setOnButton1ClickListener() {
        b1 = (Button) findViewById(R.id.button);
        b1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent("com.example.brandon.netflixcalculator.RoughGuessActivity");
                startActivity(i);
            }
        });
    }

    public void setOnButton2ClickListener() {
        b2 = (Button) findViewById(R.id.button2);
        b2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent("com.example.brandon.netflixcalculator.Exact_Activity");
                startActivity(i);
            }
        });
    }

    public void setOnButton3ClickListener() {
        b3 = (Button) findViewById(R.id.button3);
        b3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent i = new Intent("com.example.brandon.netflixcalculator.ShowInfoActivity");
                startActivity(i);
            }
        });
    }

    public void setOnButton4ClickListener() {
        b4 = (Button) findViewById(R.id.btnUpdate);
        b4.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                System.out.println("-----------------------------------------------------");
                System.out.println(calcDays());
                showMessage("Days remaining", String.valueOf(calcDays()));
                daysRemaining.setText(String.valueOf(calcDays()));
            }

        });

    }

    public int getTotalMin(){
        int x = 0;
        Cursor res = db.getWritableDatabase().rawQuery("select MINUTES from VIEWING", null);
        StringBuffer sb = new StringBuffer();
        while(res.moveToNext()){
            x += Integer.parseInt(res.getString(0));
        }
        return x;
    }


    public void readDB(){
        Cursor res = db.getAllData("SHOW_INFO");
        if (res.getCount() == 0) {
            showMessage("Error", "No data found");
            return;
        }
        StringBuffer sb = new StringBuffer();
        while (res.moveToNext()) {
            sb.append("\nName: " + res.getString(1) + "\nSeasons: "
                    + res.getString(2) + "\nEpisodes: " + res.getString(3) + "\nEpisode Length: " +
                    res.getString(4));
        }
        showMessage("Test", sb.toString());
        db.close();

    }

    public void showMessage(String title, String msg){
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setCancelable(true);
        builder.setTitle(title);
        builder.setMessage(msg);
        builder.show();
    }
}

数据库助手类

public class DatabaseHelper extends SQLiteOpenHelper{

    private static final String dbName = "viewing_database";
    private static final String tableViewing = "VIEWING";
    private static final String tableShowInfo = "SHOW_INFO";
    private static final String COL_1 = "ID";
    private static final String COL_2 = "WEEKDAY";
    private static final String COL_3 = "MINUTES";
    private static final String COL_4 = "PERCENTAGE";
    private static DatabaseHelper sInstance;


    public DatabaseHelper(Context context) {
        super(context, dbName, null, 1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
       db.execSQL("create table " + tableViewing + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, WEEKDAY TEXT, MINUTES INTEGER, PERCENTAGE TEXT)");
       db.execSQL("create table " + tableShowInfo + " (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, SEASONS INTEGER, EPISODES INTEGER," +
               " EPISODE_LENGTH INTEGER)");
    }

    public static synchronized DatabaseHelper getInstance(Context context) {
        // Use the application context, which will ensure that you
        // don't accidentally leak an Activity's context.
        if (sInstance == null) {
            sInstance = new DatabaseHelper(context.getApplicationContext());
        }
        return sInstance;
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS " + tableViewing);
        db.execSQL("DROP TABLE IF EXISTS " + tableShowInfo);
        onCreate(db);
    }


    public boolean updateDataViewing(String id, String weekday, int minutes, String percentage){
        SQLiteDatabase myDataBase = this.getWritableDatabase();
        ContentValues cv = new ContentValues();
        cv.put(COL_1, id);
        cv.put(COL_2, weekday);
        cv.put(COL_3, minutes);
        cv.put(COL_4, percentage);
        myDataBase.update(tableViewing, cv, "ID = ?", new String[]{id});
        myDataBase.close();
        return true;
    }

    public boolean updateDataShow(String id, String name, int seasons, int episodes, int episodeLength){
        SQLiteDatabase myDataBase = this.getWritableDatabase();
        ContentValues cv = new ContentValues();
        cv.put(COL_1, id);
        cv.put("NAME", name);
        cv.put("SEASONS", seasons);
        cv.put("EPISODES", episodes);
        cv.put("EPISODE_LENGTH", episodeLength);
        myDataBase.update(tableShowInfo, cv, "ID = ?", new String[]{id});
        return true;
    }

    public double getPercentage(int id){
        SQLiteDatabase myDataBase = this.getWritableDatabase();
        Cursor res = myDataBase.rawQuery("select PERCENTAGE from " + tableViewing + " where ID =" + id, null);
        if (res.getCount() == 0) {
            return 0;
        }
        StringBuffer sb = new StringBuffer();
        while (res.moveToNext()) {
            sb.append(res.getString(0));
        }

        String msg = sb.toString();
        myDataBase.close();
        return Integer.parseInt(msg.substring(0, msg.length()-1)) / 100.0;
    }


    public int getMin(int id){
        SQLiteDatabase myDataBase = this.getWritableDatabase();
        Cursor res = myDataBase.rawQuery("select MINUTES from " + tableViewing + " where ID =" + id, null);
        if (res.getCount() == 0) {
            return 0;
        }
        StringBuffer sb = new StringBuffer();
        while (res.moveToNext()) {
            sb.append(res.getString(0));
        }
        myDataBase.close();
        return Integer.parseInt(sb.toString());
    }

    public Cursor getAllData(String tableName){
        SQLiteDatabase myDataBase = this.getWritableDatabase();
        Cursor res = myDataBase.rawQuery("select * from " + tableName, null);
        return res;
    }

    public boolean insertDataViewing(String dayOfWeek, int minutes, String percentage){
        SQLiteDatabase myDataBase = getWritableDatabase();
        ContentValues cv = new ContentValues();
        cv.put(COL_2, dayOfWeek);
        cv.put(COL_3, minutes);
        cv.put(COL_4, percentage);
        double result = myDataBase.insert(tableViewing, null, cv);
        myDataBase.close();
        return(result != -1);
    }

    public boolean insertDataShow(String name, int seasons, int episodes, int episodeLength){
        SQLiteDatabase myDataBase = getWritableDatabase();
        ContentValues cv = new ContentValues();
        cv.put("NAME", name);
        cv.put("SEASONS", seasons);
        cv.put("EPISODES", episodes);
        cv.put("EPISODE_LENGTH", episodeLength);
        double result = myDataBase.insert(tableShowInfo, null, cv);
        myDataBase.close();
        return(result != -1);
    }

    public String getShowName(){
        Cursor res = getAllData("SHOW_INFO");
        if (res.getCount() == 0) {
            System.out.println("No data found");
            return "N/A";
        }
        StringBuffer sb = new StringBuffer();
        while (res.moveToNext()) {
            sb.append(res.getString(1));
        }
        return sb.toString();
    }

    public int[] extractShowInfo() {
        int[] info = new int[3];
        Cursor res = getAllData("SHOW_INFO");
        if (res.getCount() == 0) {
            System.out.println("No data found");
            return new int[] {0, 0, 0};
        }
        while(res.moveToNext()){
            info[0] = Integer.parseInt(res.getString(2)); //seasons
            info[1] = Integer.parseInt(res.getString(3)); //episodes
            info[2] = Integer.parseInt(res.getString(4)); //episode length
        }

        for(int x:info){
            System.out.println(x);
        }

        return info;

    }

}

最后是错误

04-06 13:59:22.081 1327-1327/com.example.brandon.netflixcalculator W/SQLiteLog: (28) failed to open "/data/user/0/com.example.brandon.netflixcalculator/databases/viewing_database-journal" with flag (131072) and mode_t (1b0) due to error (24)
04-06 13:59:22.081 1327-1327/com.example.brandon.netflixcalculator E/SQLiteLog: (14) cannot open file at line 31517 of [2ef4f3a5b1]
04-06 13:59:22.081 1327-1327/com.example.brandon.netflixcalculator E/SQLiteLog: (14) os_unix.c:31517: (24) open(/data/user/0/com.example.brandon.netflixcalculator/databases/viewing_database-journal) - 
04-06 13:59:22.081 1327-1327/com.example.brandon.netflixcalculator W/SQLiteLog: (28) failed to open "/data/user/0/com.example.brandon.netflixcalculator/databases/viewing_database-journal" with flag (131074) and mode_t (1b0) due to error (24)
04-06 13:59:22.081 1327-1327/com.example.brandon.netflixcalculator W/SQLiteLog: (28) failed to open "/data/user/0/com.example.brandon.netflixcalculator/databases/viewing_database-journal" with flag (131072) and mode_t (1b0) due to error (24)
04-06 13:59:22.081 1327-1327/com.example.brandon.netflixcalculator E/SQLiteLog: (14) cannot open file at line 31517 of [2ef4f3a5b1]
04-06 13:59:22.081 1327-1327/com.example.brandon.netflixcalculator E/SQLiteLog: (14) os_unix.c:31517: (24) open(/data/user/0/com.example.brandon.netflixcalculator/databases/viewing_database-journal) - 
04-06 13:59:22.081 1327-1327/com.example.brandon.netflixcalculator E/SQLiteLog: (2062) statement aborts at 9: [select PERCENTAGE from VIEWING where ID =4] unable to open database file
04-06 13:59:22.091 1327-1327/com.example.brandon.netflixcalculator E/SQLiteQuery: exception: unable to open database file (code 2062)
                                                                                  #################################################################
                                                                                  Error Code : 2062 (SQLITE_CANTOPEN_EMFILE)
                                                                                  Caused By : Application has opened two many files. Maximum of available file descriptors in one process is 1024 in default.
                                                                                    (unable to open database file (code 2062))
                                                                                  #################################################################; query: select PERCENTAGE from VIEWING where ID =4
04-06 13:59:22.091 1327-1327/com.example.brandon.netflixcalculator D/AndroidRuntime: Shutting down VM
04-06 13:59:22.091 1327-1327/com.example.brandon.netflixcalculator E/AndroidRuntime: FATAL EXCEPTION: main
                                                                                     Process: com.example.brandon.netflixcalculator, PID: 1327
                                                                                     android.database.sqlite.SQLiteCantOpenDatabaseException: unable to open database file (code 2062)
                                                                                     #################################################################
                                                                                     Error Code : 2062 (SQLITE_CANTOPEN_EMFILE)
                                                                                     Caused By : Application has opened two many files. Maximum of available file descriptors in one process is 1024 in default.
                                                                                        (unable to open database file (code 2062))
                                                                                     #################################################################
                                                                                         at android.database.sqlite.SQLiteConnection.nativeExecuteForCursorWindow(Native Method)
                                                                                         at android.database.sqlite.SQLiteConnection.executeForCursorWindow(SQLiteConnection.java:980)
                                                                                         at android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:836)
                                                                                         at android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62)
                                                                                         at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:143)
                                                                                         at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:132)
                                                                                         at com.example.brandon.netflixcalculator.DatabaseHelper.getPercentage(DatabaseHelper.java:83)
                                                                                         at com.example.brandon.netflixcalculator.MainActivity.calcDays(MainActivity.java:108)
                                                                                         at com.example.brandon.netflixcalculator.MainActivity$4.onClick(MainActivity.java:166)
                                                                                         at android.view.View.performClick(View.java:5697)
                                                                                         at android.widget.TextView.performClick(TextView.java:10815)
                                                                                         at android.view.View$PerformClick.run(View.java:22526)
                                                                                         at android.os.Handler.handleCallback(Handler.java:739)
                                                                                         at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                                         at android.os.Looper.loop(Looper.java:158)
                                                                                         at android.app.ActivityThread.main(ActivityThread.java:7229)
                                                                                         at java.lang.reflect.Method.invoke(Native Method)
                                                                                         at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230)
                                                                                         at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)
04-06 13:59:28.401 1327-1338/com.example.brandon.netflixcalculator W/SQLiteConnectionPool: A SQLiteConnection object for database '+data+user+0+com_example_brandon_netflixcalculator+databases+viewing_database' was leaked!  Please fix your application to end transactions in progress properly and to close the database when it is no longer needed.
04-06 14:04:22.231 1327-1327/com.example.brandon.netflixcalculator I/Process: Sending signal. PID: 1327 SIG: 9

你应该只创建单个 SqliteOpenHelper 对象 http://www.androiddesignpatterns.com/2012/05/correctly-managing-your-sqlite-database.html适用于您的整个应用程序,并在需要数据库访问的任何地方使用它。这将防止并发访问数据库时出现很多问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

应用程序打开了太多文件 - Android 的相关文章

  • ImageView 中的全尺寸图像

    我正在尝试在 ImageView 中绘制图像 但我希望它不缩放 并根据需要使用滚动条 我怎样才能做到这一点 现在我只有一个可绘制集作为 XML 中 ImageView 的 android src 这会自动缩放图像以适应屏幕宽度 我读到这可能
  • 查找回收器视图中的第一个可见项目是否是列表的第一项

    我有一个包含 13 个数据项的回收器视图 我想知道列表中的第一项是否可见 我知道像这样的方法findFirstVisibleItemPosition and findLastVisibleItemPosition但他们没有说明第一个可见项目
  • doInBackground 运行时是否可以停止 asynctask?

    我正在 ActivityB Oncreate 中创建异步任务 在该任务中 我正在运行无限 while 循环doInBackground 当我转到上一个活动并再次回到该活动时 创建了另一个异步任务 我的问题现在是两个无限 while 循环正在
  • 更改工具栏中汉堡图标的大小?

    我有两个问题 可能很奇怪 但无论如何 我有带有应用程序标题的工具栏 如何将其更改为非徽标的图片 下一个问题 是否可以设置 更改工具栏中汉堡图标的大小 我在下面的下一个代码的帮助下制作了经典的导航抽屉 我也使用了 ActionBarDrawe
  • 启动 Twitter 应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 Twitter 应用程序的 Android Intent https stackoverflow com questions 2077008 android intent for twitter ap
  • android 谷歌+登录定制

    我正在创建一个 Android 应用程序 现在我正在实现社交网络登录 Facebook 按钮很好 但 google 按钮的语言与 Facebook 不同 另外 它只说 登录 我想让它说 用谷歌登录 我是 android 编程的新手 看到我需
  • 将标题设置为操作栏时出现空指针异常

    Error Caused by java lang NullPointerException Attempt to invoke virtual method void android app ActionBar setTitle java
  • 下载图像并显示它

    应用程序的主要目的是下载和显示图像 但是当我尝试启动应用程序时它崩溃了 这是我的代码 private DownloadImageTask task protected void onCreate Bundle savedInstanceSt
  • Android 手机应用意图

    我想在手机上启动手机应用程序作为意图 我正在使用这个代码 startActivity getPackageManager getLaunchIntentForPackage com android phone 但该函数抛出一个空指针异常 因
  • Cordova 地理定位不适用于 Android

    我想在 Android 上使用地理定位 我用 Apache Cordova 编写应用程序 地理定位在 android 电脑模拟器和 android 手机上均不起作用 I try http cordova apache org docs en
  • invalidateOptionsMenu 在片段中不起作用

    显示或隐藏项目ActionBar根据文本中是否有文本EditText or not 所以 我做了以下事情 public class NounSearch extends android app Fragment EditText seach
  • Python Kivy - 在本机网络浏览器中打开 url 的应用程序

    我尝试制作一个简单的应用程序 在单击 Screen One 上的按钮后 在 Kivy 中打开一个网页 我使用了这个主题 Python 在应用程序中直接显示网络浏览器 iframe https stackoverflow com questi
  • 如何在 Android 上的 HttpPost 中发送 unicode 字符

    我试图在我的应用程序中允许多语言支持 这会发出 HTTP post 来上传新消息 我需要做什么才能支持日语和其他非拉丁语语言 我的代码目前看起来像这样 note the msg string is a JSON message by the
  • 在 Android 中使用 iText 读取或打开 PDF 文件

    我是 Android 应用程序开发新手 使用 iText 我完成了 PDF 创建并在创建的文件上写入 现在我想阅读该 PDF 文件 如何使用 iText 打开或阅读 PDF 文件 例子将是可观的 那么提前 哪个是渲染 PDF 文件的最佳库
  • 从数据库 MYSQL 和 Codeigniter 获取信息

    如果你们需要其他信息 上一个问题就在这里 从数据库中获取信息 https stackoverflow com questions 13336744 fetching information from the database 另一个更新 尽
  • 当应用程序未运行时如何堆叠 Firebase Cloud Messaging 通知?

    我在用Firebase Cloud Messaging将推送通知从我的服务器发送到我的 Android 应用程序 当应用程序运行时 通知是stacked因为我将它们设置为我的一个组FirebaseMessagingService 这很好 但
  • Android:如何监控WiFi信号强度

    当信号强度发生变化时我会收到通知 我尝试创建以下方法并在 onCreate 中调用它 private void initializeWiFiListener Log i TAG executing initializeWiFiListene
  • Android开发:未定义方法

    大家好 我是 Android 和 Eclipse 的新手 我刚刚遵循了developer android com 上的教程 现在我在添加操作栏 http developer android com training basics actio
  • 无法在 Android 模拟器中安装 apk

    我正在尝试通过 adb shell 在 ICS 模拟器中安装 apk 从一个站点下载 但出现以下错误 失败 INSTALL FAILED UID CHANGED 可能是什么问题 只需 rm r 有问题的数据目录即可 如果您在安装时遇到此错误
  • WebView 在某些设备上如果不长按则不会滚动

    我有一个 WebView 设置如下 the web view mWebView WebView findViewById R id webView push the url on to the web view mWebView loadU

随机推荐

  • D3.js - 从 chrome 加载 csv 文件

    我有一个带有 dc js d3 js crossfilter js 和 ndx csv 文件的 webProject 当我从 Visual Studio 将项目运行到 Chrome 中时 一切正常 现在 在构建项目并复制到其他计算机后 运行
  • 膨胀类 ir.noghteh.JustifiedTextView 时出错

    我将会有一个justified textview与波斯语和大部分这Android TextView 对齐文本 https stackoverflow com questions 1292575 android textview justif
  • 使用 ng-click 调用两个不同的函数

    有什么方法可以让我得到ng click调用两个函数 我想要类似的东西 ng click search match 而不是我现在的样子 ng click search 您可以使用 调用多个函数 ng click search match
  • 在画布上拖动元素

    我将一个元素作为字符串绘制到画布上 然后 我希望能够单击该元素 或点击移动设备 并将其拖动 我现在拥有的是
  • 使用 python3.8 和 Ubuntu 20.04 设置 VTK

    我最近将系统更新到 Ubuntu 20 04 我的 python 现在是 3 8 从此我的一切import vtk线路不行 ModuleNotFoundError No module named vtk 我努力了apt get python
  • 使用“书签行”选项的 Notepad++ 搜索不会为与多行正则表达式匹配的所有行添加书签,而只会为第一个行添加书签

    我想过滤属于特定用户的日志中的所有内容 使用以下模式并启用 matches newline 选项 我可以匹配我正在寻找的所有内容 但是当我要求 Notepad 为这些行添加书签以便我可以复制它们时 会发生一些奇怪的事情 n userB 0
  • Yesod开发服务器仅侦听ipv6

    我正在使用 yesod 0 9 2 2 运行 cabal install yesod devel 但它仅使用 ipv6 进行监听 有谁知道如何配置它来侦听 ipv4 吗 我在 Windows 7 上运行它 Thanks 到目前为止 您所描述
  • Celery 结果错误“args 必须是列表或元组”

    我正在运行一个 Django 网站 并且刚刚让 Celery 运行 但我遇到了令人困惑的错误 以下是代码的结构 在测试 py中 from tasks import from celery result import AsyncResult
  • gethostbyname 双网络接口,选择使用哪一个

    我有一个 C 程序 需要连接到服务器并发送 tcp 有效负载并等待响应 这对于正常使用来说效果很好 但由于我有两个不同的网络接口 让我们在运行程序的计算机上将它们称为 if0 和 if1 有时其中一个网络接口无法转发流量 不幸的是 这是我无
  • 从同一组织中的一个 API 代理调用另一个 API 代理

    我的组织中有一个现有的 API 代理 我想在其他 API 代理中调用它 还有其他方法可以实现吗 API 代理开发和设计中的考虑因素之一是不要实现从一个 API 代理到同一组织中的另一个 API 代理的 ServiceCallout 或者按照
  • C 中 printf 中未加引号的“PRIu32”是什么?

    我正在查看以下代码 include
  • DataContract 与 XmlType

    作为尝试学习 WCF 的一部分 我正在阅读有关序列化的内容 我正在努力理解如何控制 NET 3 5 中的序列化 例如 我有一个带有一些公共属性的简单类 通过向该类添加 DataContract 属性 我可以在序列化时控制该类的命名空间和名称
  • MySQL 对 DELETE 语句的限制

    我针对最近遇到的错误整理了一个测试表 它涉及在尝试从 MySQL 表中删除单个记录时使用 LIMIT 我所说的错误是 您的 SQL 语法有错误 检查与您的 MySQL 服务器版本相对应的手册 了解在第 1 行 LIMIT 1 附近使用的正确
  • javascript中如何计算字符串的行数

    我想计算字符串中的行数 我尝试使用这个 stackoverflow 答案 lines str split r n r n return lines length 在此字符串 最初是一个缓冲区 上 GET HTTP 1 1 Host loca
  • Keras根据阈值将中间层的输出设置为0或1

    我有一个模型 其中有 分类 和 回归 之类的部分 我使用乘法层合并它们 在执行乘法之前 我想根据阈值将分类部分的输出设置为 0 或 1 我尝试将 Lambda 层与自定义函数一起使用 如下所示 但是我遇到了各种错误 并且我对这些错误一无所知
  • 在 Picturebox C# 中显示 mp3 图稿 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在创建一个音乐播放器 当播放音乐时 我想在图片框中显示当前 mp3 的艺术作品 我已经上网但找不到解决方案 所以请帮忙 EDIT
  • 中断/退出脚本

    我有一个程序可以进行一些数据分析 并且有几百行长 在程序的早期 我想做一些质量控制 如果没有足够的数据 我希望程序终止并返回到 R 控制台 否则 我希望执行其余的代码 我试过了break browser and quit并且它们都不会停止程
  • 如何使用 \r 在同一行上打印? [复制]

    这个问题在这里已经有答案了 我做了一个下载器 usr bin env python coding utf 8 from future import print function division absolute import unicod
  • 本机查询中的 Spring JPA 存储库子查询

    我正在尝试在存储库方法上运行本机查询 以便它返回带有一些计数的结果 使用 JPQL 太复杂了 所以我选择了原生查询 存储库 RepositoryRestResource collectionResourceRel projects path
  • 应用程序打开了太多文件 - Android

    我有一个名为 calcDays 的方法 它一遍又一遍地循环数据库 直到满足特定条件 问题是 Android studio 告诉我文件已用完 我意识到我正在打开数据库而不是关闭它们 这就是我遇到错误的原因 但是 我似乎无法修复这个错误 具有