fix build

This commit is contained in:
2025-05-31 16:07:12 +02:00
parent b6dd96cbad
commit 091a2123bb
21 changed files with 1034 additions and 191 deletions

View File

@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- AndroidTV support -->
<uses-feature android:name="android.software.leanback" android:required="false" />

View File

@ -1,13 +1,3 @@
package space.haex.hub
import android.webkit.WebView
import android.os.Bundle
import android.content.pm.ApplicationInfo
class MainActivity : TauriActivity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (0!= (applicationInfo.flags and ApplicationInfo.FLAG_DEBUGGABLE)) {
WebView.setWebContentsDebuggingEnabled(true)
}
}
}
class MainActivity : TauriActivity()

View File

@ -4,7 +4,7 @@ buildscript {
mavenCentral()
}
dependencies {
classpath("com.android.tools.build:gradle:8.10.0")
classpath("com.android.tools.build:gradle:8.5.1")
classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25")
}
}

View File

@ -18,6 +18,6 @@ repositories {
dependencies {
compileOnly(gradleApi())
implementation("com.android.tools.build:gradle:8.10.0")
implementation("com.android.tools.build:gradle:8.5.1")
}

View File

@ -1,6 +1,6 @@
#Tue May 10 19:22:52 CST 2022
distributionBase=GRADLE_USER_HOME
distributionUrl=https\://services.gradle.org/distributions/gradle-8.11.1-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.9-bin.zip
distributionPath=wrapper/dists
zipStorePath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME

View File

@ -33,7 +33,7 @@ pub async fn sql_execute(
/// Erstellt eine verschlüsselte Datenbank
#[tauri::command]
pub fn create_encrypted_database_old(
pub fn create_encrypted_database(
app_handle: AppHandle,
path: String,
key: String,
@ -41,9 +41,15 @@ pub fn create_encrypted_database_old(
) -> Result<String, String> {
// Ressourcenpfad zur eingebundenen Datenbank auflösen
println!("Arbeitsverzeichnis: {:?}", std::env::current_dir());
println!(
"Ressourcenverzeichnis: {:?}",
app_handle.path().resource_dir()
);
let resource_path = app_handle
.path()
.resolve("vault.db", BaseDirectory::Resource)
.resolve("database/vault.db", BaseDirectory::Resource)
.map_err(|e| format!("Fehler beim Auflösen des Ressourcenpfads: {}", e))?;
// Prüfen, ob die Ressourcendatei existiert
@ -227,9 +233,10 @@ pub fn open_encrypted_database(
return Err("Datenbankdatei nicht gefunden".into());
}
let conn = core::open_and_init_db(&path, &key, false)?;
let conn = core::open_and_init_db(&path, &key, false)
.map_err(|e| format!("Fehler beim öffnen: {}", e));
let mut db = state.0.lock().map_err(|e| e.to_string())?;
*db = Some(conn);
*db = Some(conn.unwrap());
Ok(format!("success"))
}
@ -260,7 +267,7 @@ fn prepare_temporary_asset_db(
//.resolve("vault.db", BaseDirectory::Resource)
let asset_bytes = app_handle
.asset_resolver()
.get(asset_name.to_string())
.get(asset_name.to_owned())
.ok_or_else(|| format!("Asset '{}' wurde nicht im Bundle gefunden.", asset_name))?
.bytes()
.to_vec();
@ -493,7 +500,7 @@ fn open_and_verify_encrypted_db(db_path: &Path, key: &str) -> Result<Connection,
/// Hauptfunktion: Erstellt eine verschlüsselte Datenbank aus einem gebündelten Asset.
#[tauri::command]
pub fn create_encrypted_database(
pub fn create_encrypted_database_new(
app_handle: AppHandle<Wry>,
path: String,
key: String,
@ -503,7 +510,7 @@ pub fn create_encrypted_database(
let temp_db_path: PathBuf; // Muss deklariert werden, um im Fehlerfall aufgeräumt werden zu können
// Schritt 1: Asset vorbereiten
match prepare_temporary_asset_db(&app_handle, &asset_name, BaseDirectory::AppData) {
match prepare_temporary_asset_db(&app_handle, &asset_name, BaseDirectory::Resource) {
Ok(path) => temp_db_path = path,
Err(e) => return Err(e),
}

View File

@ -12,73 +12,6 @@ pub fn run() {
let protocol_name = "haex-extension";
tauri::Builder::default()
.setup(|app| {
// --- START DER ASSET-INVENTUR (Korrigierte Version) ---
println!("\n[INVENTUR] App-Setup wird ausgeführt. Liste alle Assets im Bundle auf...");
let mut found_assets_count = 0;
// KORREKTE METHODE: Direkt über eine Referenz auf den AssetResolver iterieren
for asset_name in app.asset_resolver().iter() {
found_assets_count += 1;
// Wir geben jeden gefundenen Asset-Namen aus
println!("[INVENTUR] Gefundenes Asset: '{}'", asset_name.0);
}
if found_assets_count == 0 {
println!("[INVENTUR] Es wurden KEINE Assets im Bundle gefunden!");
} else {
println!(
"[INVENTUR] Inventur abgeschlossen. {} Assets gefunden.",
found_assets_count
);
}
println!("[INVENTUR] --- ENDE DER INVENTUR ---\n");
// --- ENDE DER ASSET-INVENTUR ---
// --- START DES DEFINITIVEN ASSET-TESTS ---
println!("\n[DEBUG] App-Setup wird ausgeführt. Versuche, die Datenbank zu laden...");
// BITTE SICHERSTELLEN: Dieser String muss EXAKT dem SCHLÜSSEL (KEY)
// in deiner tauri.conf.json entsprechen!
let asset_to_find = "database/vault.db";
println!(
"[DEBUG] Suche nach Asset mit dem Alias: '{}'",
asset_to_find
);
match app.asset_resolver().get(asset_to_find.to_string()) {
Some(asset) => {
// ERFOLG! Das Asset wurde gefunden.
println!("\n✅ ✅ ✅ ERFOLG! ✅ ✅ ✅");
println!(
"[DEBUG] Asset '{}' wurde im Bundle gefunden.",
asset_to_find
);
println!("[DEBUG] Größe der Datenbank: {} Bytes.", asset.bytes.len());
}
None => {
// FEHLER! Das Asset wurde nicht gefunden.
println!("\n❌ ❌ ❌ FEHLER! ❌ ❌ ❌");
println!(
"[DEBUG] Asset '{}' wurde NICHT im Bundle gefunden.",
asset_to_find
);
println!("[DEBUG] Mögliche Ursachen:");
println!("[DEBUG] 1. Der Alias-String im Code ist falsch (Tippfehler?).");
println!("[DEBUG] 2. Der Schlüssel in 'tauri.conf.json' ist anders.");
println!(
"[DEBUG] 3. Der Build-Cache ist veraltet (lösche 'src-tauri/target')."
);
}
}
println!("[DEBUG] --- ENDE DES ASSET-TESTS ---\n");
// --- ENDE DES DEFINITIVEN ASSET-TESTS ---
// Hier kann dein restlicher Setup-Code stehen bleiben
Ok(())
})
.register_uri_scheme_protocol(protocol_name, move |context, request| {
match extension::core::extension_protocol_handler(&context, &request) {
Ok(response) => response, // Wenn der Handler Ok ist, gib die Response direkt zurück

View File

@ -54,6 +54,6 @@
"icons/icon.icns",
"icons/icon.ico"
],
"resources": ["test.txt"]
"resources": ["database/vault.db"]
}
}