我设置了背景样式,但只有中心部分发生变化,
在这里输入图像描述
Сергей Гуков's questions
该程序运行正常,所有内容都已编译。我决定在一个月内打开项目并给出这样的错误,不允许应用程序运行。我不明白问题是什么,请告诉我可能是什么问题。

> Task :app:processDebugResources FAILED
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":2,"startColumn":4,"startOffset":55,"endColumn":93,"endOffset":144}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:3:5-94: AAPT: error: resource android:color/system_neutral1_1000 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":3,"startColumn":4,"startOffset":149,"endColumn":93,"endOffset":238}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:4:5-94: AAPT: error: resource android:color/system_neutral1_900 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":4,"startColumn":4,"startOffset":243,"endColumn":92,"endOffset":331}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:5:5-93: AAPT: error: resource android:color/system_neutral1_0 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":5,"startColumn":4,"startOffset":336,"endColumn":93,"endOffset":425}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:6:5-94: AAPT: error: resource android:color/system_neutral1_800 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":6,"startColumn":4,"startOffset":430,"endColumn":93,"endOffset":519}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:7:5-94: AAPT: error: resource android:color/system_neutral1_700 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":7,"startColumn":4,"startOffset":524,"endColumn":93,"endOffset":613}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:8:5-94: AAPT: error: resource android:color/system_neutral1_600 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":8,"startColumn":4,"startOffset":618,"endColumn":93,"endOffset":707}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:9:5-94: AAPT: error: resource android:color/system_neutral1_500 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":9,"startColumn":4,"startOffset":712,"endColumn":93,"endOffset":801}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:10:5-94: AAPT: error: resource android:color/system_neutral1_400 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":10,"startColumn":4,"startOffset":806,"endColumn":93,"endOffset":895}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:11:5-94: AAPT: error: resource android:color/system_neutral1_300 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":11,"startColumn":4,"startOffset":900,"endColumn":93,"endOffset":989}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:12:5-94: AAPT: error: resource android:color/system_neutral1_200 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":12,"startColumn":4,"startOffset":994,"endColumn":93,"endOffset":1083}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:13:5-94: AAPT: error: resource android:color/system_neutral1_100 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":13,"startColumn":4,"startOffset":1088,"endColumn":92,"endOffset":1176}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:14:5-93: AAPT: error: resource android:color/system_neutral1_50 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":14,"startColumn":4,"startOffset":1181,"endColumn":92,"endOffset":1269}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:15:5-93: AAPT: error: resource android:color/system_neutral1_10 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":15,"startColumn":4,"startOffset":1274,"endColumn":101,"endOffset":1371}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:16:5-102: AAPT: error: resource android:color/system_neutral2_1000 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":16,"startColumn":4,"startOffset":1376,"endColumn":101,"endOffset":1473}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:17:5-102: AAPT: error: resource android:color/system_neutral2_900 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":17,"startColumn":4,"startOffset":1478,"endColumn":100,"endOffset":1574}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:18:5-101: AAPT: error: resource android:color/system_neutral2_0 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":18,"startColumn":4,"startOffset":1579,"endColumn":101,"endOffset":1676}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:19:5-102: AAPT: error: resource android:color/system_neutral2_800 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":19,"startColumn":4,"startOffset":1681,"endColumn":101,"endOffset":1778}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:20:5-102: AAPT: error: resource android:color/system_neutral2_700 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":20,"startColumn":4,"startOffset":1783,"endColumn":101,"endOffset":1880}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:21:5-102: AAPT: error: resource android:color/system_neutral2_600 not found.\n ","tool":"AAPT"}
AGPBI: {"kind":"error","text":"Android resource linking failed","sources":[{"file":"/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml","position":{"startLine":21,"startColumn":4,"startOffset":1885,"endColumn":101,"endOffset":1982}}],"original":"ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:22:5-102: AAPT: error: resource android:color/system_neutral2_500 not found.\n ","tool":"AAPT"}
Execution failed for task ':app:processDebugResources'.
> A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction
> Android resource linking failed
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:3:5-94: AAPT: error: resource android:color/system_neutral1_1000 not found.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:3:5-94: AAPT: error: resource android:color/system_neutral1_1000 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:4:5-94: AAPT: error: resource android:color/system_neutral1_900 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:5:5-93: AAPT: error: resource android:color/system_neutral1_0 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:6:5-94: AAPT: error: resource android:color/system_neutral1_800 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:7:5-94: AAPT: error: resource android:color/system_neutral1_700 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:8:5-94: AAPT: error: resource android:color/system_neutral1_600 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:9:5-94: AAPT: error: resource android:color/system_neutral1_500 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:10:5-94: AAPT: error: resource android:color/system_neutral1_400 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:11:5-94: AAPT: error: resource android:color/system_neutral1_300 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:12:5-94: AAPT: error: resource android:color/system_neutral1_200 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:13:5-94: AAPT: error: resource android:color/system_neutral1_100 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:14:5-93: AAPT: error: resource android:color/system_neutral1_50 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:15:5-93: AAPT: error: resource android:color/system_neutral1_10 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:16:5-102: AAPT: error: resource android:color/system_neutral2_1000 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:17:5-102: AAPT: error: resource android:color/system_neutral2_900 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:18:5-101: AAPT: error: resource android:color/system_neutral2_0 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:19:5-102: AAPT: error: resource android:color/system_neutral2_800 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:20:5-102: AAPT: error: resource android:color/system_neutral2_700 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:21:5-102: AAPT: error: resource android:color/system_neutral2_600 not found.
ERROR:/Users/gukov/.gradle/caches/transforms-2/files-2.1/e5160649d44c6889b4efb289ab4e5b7e/material-1.5.0-alpha03/res/values-v31/values-v31.xml:22:5-102: AAPT: error: resource android:color/system_neutral2_500 not found.
通常,来自数据库的数据被加载到recycleview 中。检查一部手机 - 所有规则。检查第二个,那里的列表不是按那个顺序显示的。在 SQL 查询中,我专门指定了按 id 排序,但没有任何变化。有什么问题?
private void loadingLevel() {
Cursor c = mDb.rawQuery("SELECT * FROM levels ORDER BY level_id", null);
c.moveToFirst();
if (c.getCount() != 0) {
for (int i = 0; i < c.getCount(); i++) {
map.put(c.getInt(0), c.getString(1));
c.moveToNext();
}
}
c.close();
}
// заполнение листа для адаптера
private void fillList() {
for(Map.Entry<Integer, String> entry : map.entrySet()) {
int id = entry.getKey();
String word = entry.getValue();
if (id <= currentLevel)
aList.add(new Word(id, word));
else
aList.add(new Word(id, "?"));
}
}
// отображение введенных слов
private void showEnteredWords() {
LinearLayoutManager layoutManager = new LinearLayoutManager(getApplicationContext());
recyclerView.setLayoutManager(layoutManager);
recyclerView.addItemDecoration(new DividerItemDecoration(recyclerView.getContext(), DividerItemDecoration.VERTICAL));
LevelAdapter adapter = new LevelAdapter(this, aList);
recyclerView.setAdapter(adapter); // устанавливаем адаптер
adapter.setOnWordClickListener(position -> {
Word word = adapter.getWords().get(position);
if (word.getId() < currentLevel) {
AllRhymesFragment dialog = new AllRhymesFragment();
Bundle args = new Bundle();
args.putInt("level", word.getId());
args.putString("requestFrom", getClass().getSimpleName());
dialog.setArguments(args);
dialog.show(getSupportFragmentManager(), "dialogAllRhymes");
} else
Toasty.error(this, getString(R.string.access_is_closed), Toast.LENGTH_SHORT, false).show();
});
}
“使用 AndroidX artefacts”复选框出现在创建新项目的窗口中。在网上看了之后,我一般不明白AndroidX是什么。请用通俗的语言解释一下。它应该包含在新项目中吗?
出于某种原因,在栏中的“共享”按钮旁边,显示了共享列表中的一个图标。如何删除它?
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_fulldesc, menu);
MenuItem item = menu.findItem(R.id.share);
ShareActionProvider MenuSAP = (ShareActionProvider) MenuItemCompat.getActionProvider(item);
MenuSAP.setShareIntent(createShareIntent());
return true;
}
private Intent createShareIntent() {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Просто нашел это замечательное приложение! Посмотри здесь: https://play.google.com/store/apps/details?id=");
return shareIntent;
}
我正在为我的一个朋友为一所大学做一个程序(实验室工作)。我将不得不提供他,包括源代码。
所以问题是,你能想到什么让这个朋友不把这个程序卖给/给其他人,而其他人不会以同样的成功通过它。这些人没有什么技能,但是,当然,如果你只是在应用程序的名称和上栏中写上姓氏,那么他们仍然会在代码中找到并轻松将其更改为自己的。
什么保护和对一个人的姓氏的约束可以更复杂?
有一个Javafx应用程序,它从哪里开始,当然,哪里有jre。有没有办法让 jar 文件在没有安装 JRE 的计算机上运行?也许可以在里面注入一些东西?
我正在尝试在应用程序中播放声音。从 IntelliJ IDEA 启动时,一切正常,但是当我收集 jar 工件并运行它时,里面没有声音。可能是什么问题呢?编码:
// воспроизведение звука
private void SoundPlay(int second) throws URISyntaxException {
soundCountdown = null;
soundEnd = null;
try {
InputStream bufferedIn1 = new BufferedInputStream(Main.class.getResourceAsStream("number.wav"));
InputStream bufferedIn2 = new BufferedInputStream(Main.class.getResourceAsStream("null.wav"));
AudioInputStream aff1 = AudioSystem.getAudioInputStream(bufferedIn1);
AudioFormat af1 = aff1.getFormat();
DataLine.Info info1 = new DataLine.Info(Clip.class, af1);
AudioInputStream aff2 = AudioSystem.getAudioInputStream(bufferedIn2);
AudioFormat af2 = aff2.getFormat();
DataLine.Info info2 = new DataLine.Info(Clip.class, af2);
// звук 0 секунд
if (second == 0) {
if (AudioSystem.isLineSupported(info2)) {
soundEnd = (Clip) AudioSystem.getLine(info2);
AudioInputStream ais2 = AudioSystem.getAudioInputStream(bufferedIn2);
soundEnd.open(ais2);
soundEnd.start();
} else { System.exit(0); }
}
// звук 3, 2, 1 секунд
if (second <= 3 && second != 0) {
if (AudioSystem.isLineSupported(info1)) {
soundCountdown = (Clip) AudioSystem.getLine(info1);
AudioInputStream ais1 = AudioSystem.getAudioInputStream(bufferedIn1);
soundCountdown.open(ais1);
soundCountdown.start();
} else { System.exit(0); }
}
} catch (Exception e) {
e.printStackTrace();
System.out.println("Ошибка воспроизведения звука!");
}
}
日志
java.io.IOException: Stream closed
at java.io.BufferedInputStream.getInIfOpen(BufferedInputStream.java:159)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read(BufferedInputStream.java:265)
at com.sun.media.sound.RIFFReader.read(RIFFReader.java:125)
at com.sun.media.sound.RIFFReader.<init>(RIFFReader.java:60)
at com.sun.media.sound.WaveFloatFileReader.internal_getAudioFileFormat(WaveFloatFileReader.java:65)
at com.sun.media.sound.WaveFloatFileReader.getAudioFileFormat(WaveFloatFileReader.java:55)
at com.sun.media.sound.WaveFloatFileReader.getAudioInputStream(WaveFloatFileReader.java:117)
at javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:1113)
at main.WindowController.SoundPlay(WindowController.java:299)
at main.WindowController.ShowImagesAction(WindowController.java:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.reflect.misc.Trampoline.invoke(MethodUtil.java:71)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at sun.reflect.misc.MethodUtil.invoke(MethodUtil.java:275)
at javafx.fxml.FXMLLoader$MethodHandler.invoke(FXMLLoader.java:1771)
at javafx.fxml.FXMLLoader$ControllerMethodEventHandler.handle(FXMLLoader.java:1657)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Node.fireEvent(Node.java:8411)
at javafx.scene.control.Button.fire(Button.java:185)
at com.sun.javafx.scene.control.behavior.ButtonBehavior.mouseReleased(ButtonBehavior.java:182)
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:96)
at com.sun.javafx.scene.control.skin.BehaviorSkinBase$1.handle(BehaviorSkinBase.java:89)
at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:218)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:238)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:191)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:198)
at javafx.scene.Scene$MouseHandler.process(Scene.java:3757)
at javafx.scene.Scene$MouseHandler.access$1500(Scene.java:3485)
at javafx.scene.Scene.impl_processMouseEvent(Scene.java:1762)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2494)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:394)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.run(GlassViewEventHandler.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.lambda$handleMouseEvent$353(GlassViewEventHandler.java:432)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:389)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:431)
at com.sun.glass.ui.View.handleMouseEvent(View.java:555)
at com.sun.glass.ui.View.notifyMouse(View.java:937)
Ошибка воспроизведения звука!
有人告诉我,理想情况下,初始化向量应该是随机生成的(我还在某处读到过这个),但如果每次都是随机生成的,那么数据将被错误地解密,对吧?你什么意思我没听懂?这是我的加密和解密代码
public class AesCipher {
private static final String INIT_VECTOR = "ItIsOurBigSecret";
// зашифрование
static byte[] encrypt(byte[] secretKey, byte[] plainText, String mode) {
try {
if (!isKeyLengthValid(secretKey)) {
throw new Exception("Длина ключа должна быть 128, 192 или 256 бит!");
}
IvParameterSpec ivParameterSpec = new IvParameterSpec(INIT_VECTOR.getBytes());
SecretKeySpec secretKeySpec = new SecretKeySpec(secretKey, "AES");
Cipher cipher = Cipher.getInstance("AES/" + mode + "/PKCS5Padding");
if (mode.equals("ECB"))
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
else
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec);
return cipher.doFinal(plainText);
} catch (Throwable cause) {
System.out.print(cause.getMessage());
}
return null;
}
// дешифрование
static byte[] decrypt(byte[] secretKey, byte[] cipherText, String mode) {
try {
if (!isKeyLengthValid(secretKey)) {
throw new Exception("Длина ключа должна быть 128, 192 или 256 бит!");
}
IvParameterSpec ivParameterSpec = new IvParameterSpec(INIT_VECTOR.getBytes());
SecretKeySpec secretKeySpec = new SecretKeySpec(secretKey, "AES");
Cipher cipher = Cipher.getInstance("AES/" + mode + "/NoPadding");
if (mode.equals("ECB"))
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
else
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec);
return cipher.doFinal(cipherText);
} catch (Throwable cause) {
System.out.print(cause.getMessage());
Controller.ShowMessage(cause.getMessage());
}
return null;
}
// проверка длины ключа
private static boolean isKeyLengthValid(byte[] key) {
return key.length == 16 || key.length == 24 || key.length == 32;
}
// генерация инициализирующего вектора
private static String genInitVector() {
Random r = new Random();
StringBuilder builder = new StringBuilder();
for (int j = 0; j < 16; j++) {
char code = (char) (r.nextInt(94) + 33); // символы с кодами от 33 по 126
builder.append(Character.toString(code));
}
return builder.toString();
}
}
我使用不同模式的 AES 加密(以下,示例中的“CBC”模式)。我用文本加密以下文件。
我大约在文本中间向生成的加密代码中引入了一个错误。
解密后得到如下文字。

实际上,问题是:为什么这部分文本被错误地解密了,因为,正如我从 AES 文档中理解的那样(正如老师向我解释的那样),在引入错误之后包含的所有文本都应该被错误地解密?如何让它完全像这样工作?
类代码(在“模式”中我通过模式):
public class AesCipher {
private static final String INIT_VECTOR = "ItIsOurBigSecret";
// зашифрование
static byte[] encrypt(byte[] secretKey, byte[] plainText, String mode) {
try {
if (!isKeyLengthValid(secretKey)) {
throw new Exception("Длина ключа должна быть 128, 192 или 256 бит!");
}
IvParameterSpec ivParameterSpec = new IvParameterSpec(INIT_VECTOR.getBytes());
SecretKeySpec secretKeySpec = new SecretKeySpec(secretKey, "AES");
Cipher cipher = Cipher.getInstance("AES/" + mode + "/PKCS5Padding");
if (mode.equals("ECB"))
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
else
cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec, ivParameterSpec);
return cipher.doFinal(plainText);
} catch (Throwable cause) {
System.out.print(cause.getMessage());
}
return null;
}
// дешифрование
static byte[] decrypt(byte[] secretKey, byte[] cipherText, String mode) {
try {
if (!isKeyLengthValid(secretKey)) {
throw new Exception("Длина ключа должна быть 128, 192 или 256 бит!");
}
IvParameterSpec ivParameterSpec = new IvParameterSpec(INIT_VECTOR.getBytes());
SecretKeySpec secretKeySpec = new SecretKeySpec(secretKey, "AES");
Cipher cipher = Cipher.getInstance("AES/" + mode + "/PKCS5Padding");
if (mode.equals("ECB"))
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);
else
cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec);
return cipher.doFinal(cipherText);
} catch (Throwable cause) {
System.out.print(cause.getMessage());
Controller.ShowMessage(cause.getMessage());
}
return null;
}
// проверка длины ключа
private static boolean isKeyLengthValid(byte[] key) {
return key.length == 16 || key.length == 24 || key.length == 32;
}
在来自 php 的 ajax 成功不会返回echo "1";。更准确地说,如果您注释掉该行$mail->send();,则返回“1”,否则它可能会尝试返回结果$mail->send();
。如何准确返回echo "1";,而不是$mail->send();?
<?
if ($error == "no") {
$mail = new PHPMailer(true);
//Настройки сервера
$mail->CharSet = 'UTF-8';
$mail->SMTPDebug = 2;
$mail->isSMTP();
$mail->Host = 'smtp.oo-gsi.ru';
$mail->SMTPAuth = true;
$mail->SMTPAutoTLS = false;
$mail->Username = '***';
$mail->Password = '***';
//$mail->SMTPSecure = 'ssl';
$mail->Port = 25;
//Получатели
$mail->setFrom('admin@oo-gsi.ru', 'Сайт ГСИ');
$mail->addAddress('sbrujg@mail.ru', 'Охранная огранизация ГСИ');
//Вложения
foreach($files as $file) {
$file_name = cyrillic_translit($file['name']);
$mail->addAttachment("$uploaddir/$file_name");
}
//Содержание
$mail->isHTML(true);
$mail->Subject = 'Анкета для приема на работу';
$mail->Body =
'Новая анкета для приема на работу в охранную организацию «ГСИ». <br><br>ФИО: '.rec($_POST['posName']).' <br>Телефон: '.rec($_POST['posPhone']).' <br>Email-адрес: '.rec($_POST['posEmail']).' <br>Год рождения: '.rec($_POST['posBirthday']).' <br>Гражданство: '.rec($_POST['posCitizenship']).' <br>Город проживания: '.rec($_POST['posCity']).' <br>Готовность к командировкам: '.rec($_POST['posMove']).' <br>Опыт работы в охранной сфере: '.rec($_POST['posExperience']).'';
$mail->AltBody =
'Новая анкета для приема на работу в охранную организацию «ГСИ». //ФИО: '.rec($_POST['posName']).' /Телефон: '.rec($_POST['posPhone']).' /Email-адрес: '.rec($_POST['posEmail']).' /Год рождения: '.rec($_POST['posBirthday']).' /Гражданство: '.rec($_POST['posCitizenship']).' /Город проживания: '.rec($_POST['posCity']).' /Готовность к командировкам: '.rec($_POST['posMove']).' /Опыт работы в охранной сфере: '.rec($_POST['posExperience']).'';
$mail->send();
echo "1";
} else { //Если есть ошибки
echo "0";
}
?>














