Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   Delphi Android64 manifest '@xml\device_admin.xml' is incompatible with attribute resource (https://www.delphipraxis.net/216834-android64-manifest-%40xml%5Cdevice_admin-xml-incompatible-attribute-resource.html)

kmj 11. Mär 2025 07:22

Android64 manifest '@xml\device_admin.xml' is incompatible with attribute resource
 
Hallo an alle Lesenden!
Meine Umgebung XE12.2 Patch2, Tablet der Firma Lenovo Android 13

Ich versuche gearde ein älteres Android-Projekt zu kompilieren und zu installieren: Das bei Embarcadero nicht mehr vorhandene Template "Advanced Android Kiosk Mode Template". Dies ist irgendwann bei Github gelandet (https://github.com/Embarcadero/Andro...de-FMXTemplate).

Nach notwendigem Anpassen der AndroidManifest.template.xml scheitere ich weiterhin. Ich erhalte die Meldung:
[PAClient Fehler] Fehler: E8200 D:\physloc\andere_Progs\Android-Kiosk-Mode-FMXTemplate-master\Source\Android64\Debug\AndroidManifest-merged.xml:134:
error: '@xml\device_admin.xml' is incompatible with attribute resource (attr) reference.
Was um alles in der Welt ist das???
1. E8200 was bedeutet die Nummer?
2. Warum geht die Resource nicht?

Ich habe bereits die Dateinamenslänge, den Zeichensatz der Resource und den Ablageort der Resourcedatei geprüft bzw. geändert - kein Erfolg.
Evtl. kann man nach dem Kompilieren das APK "von Hand" erstellen um paclient zu umgehen? Leider weiss ich nicht, wo ich da anfangen soll.
Für eine Hilfestellung wäre ich wirklich dankbar.

Ansonsten: Bei meiner Suche nach einer Lösung bin ich auf ein weiteres Android Projekt mit fast ähnlichem Funktionsumfang gestossen. Allerdings für Android-Studio (https://github.com/mrugacz95/kiosk). Hier sehe ich auf den ersten und zweiten Blick eine ähnliches Manifest. Allerdings ist das Projekt funktionsfähig und lässt sich installieren.


Grüße
Kurt

Hier mein Manifest und besagte Resource
MANIFEST
Code:

<?xml version="1.0" encoding="utf-8"?>
<!-- BEGIN_INCLUDE(manifest) -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="%package%"
    android:installLocation="%installLocation%"
    android:versionCode="%versionCode%"
    android:versionName="%versionName%" >
    <uses-sdk
        android:minSdkVersion="%minSdkVersion%"
        android:targetSdkVersion="%targetSdkVersion%" />
<%uses-permission%>
    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />
    <queries>
<%queries-child-elements%>
    </queries>
    <application
        android:debuggable="%debuggable%"
        android:hardwareAccelerated="%hardwareAccelerated%"
        android:icon="%icon%"
        android:label="%label%"
        android:largeHeap="%largeHeap%"
        android:persistent="%persistent%"
        android:requestLegacyExternalStorage="true"
        android:resizeableActivity="true"
        android:restoreAnyVersion="%restoreAnyVersion%"
        android:theme="%theme%" >
<%provider%>
<%application-meta-data%>
<%uses-libraries%>
        <!-- Trigger Google Play services to install the backported photo picker module. -->
        <service
            android:name="com.google.android.gms.metadata.ModuleDependencies"
            android:enabled="false"
            android:exported="false"
            tools:ignore="MissingClass" >
            <intent-filter>
                <action android:name="com.google.android.gms.metadata.MODULE_DEPENDENCIES" />
            </intent-filter>

            <meta-data
                android:name="photopicker_activity:0:required"
                android:value="" />
        </service>
<%services%>
        <!--
             Our activity is a subclass of the built-in NativeActivity framework class.
             This will take care of integrating with our NDK code.
        -->
        <activity
            android:name="com.embarcadero.firemonkey.FMXNativeActivity"
            android:configChanges="orientation|keyboard|keyboardHidden|screenSize"
            android:exported="true"
            android:label="%activityLabel%"
            android:launchMode="singleTask"
            android:lockTaskMode="always">

            <!-- Tell NativeActivity the name of our .so -->
            <meta-data
                android:name="android.app.lib_name"
                android:value="%libNameValue%" />

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
<%activity%>
<%receivers%>
            <receiver
                 android:exported="true"
                 android:name="com.kiosk.app.BootReceiver">
            <intent-filter>
                <action android:name="android.intent.action.BOOT_COMPLETED" />
            </intent-filter>
            </receiver>
      <receiver
         android:name="com.kiosk.admin.AdminReceiver"
                        android:exported="false"
         android:permission="android.permission.BIND_DEVICE_ADMIN">
         <meta-data
         android:name="android.app.device_admin"
                        android:resource="@xml\device_admin.xml"/>
         <intent-filter>
            <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" />
            <action android:name="android.app.action.PROFILE_PROVISIONING_COMPLETE"/>
         </intent-filter>
      </receiver>
    </application>
</manifest>
<!-- END_INCLUDE(manifest) -->

Hier die vermeinlich inkompatible Resource:
Code:
<?xml version="1.0" encoding="utf-8"?>
<device-admin xmlns:android="http://schemas.android.com/apk/res/android">
   <uses-policies>
      <limit-password />
      <watch-login />
      <reset-password />
      <force-lock />
      <wipe-data />
      <expire-password />
      <encrypted-storage />
      <disable-camera />
   </uses-policies>
</device-admin>

jaenicke 11. Mär 2025 07:57

AW: Android64 manifest '@xml\device_admin.xml' is incompatible with attribute resour
 
Zitat:

@xml\device_admin.xml
Muss das nicht ein / unter Android sein?

kmj 11. Mär 2025 08:02

AW: Android64 manifest '@xml\device_admin.xml' is incompatible with attribute resour
 
Danke für die schnelle Antwort - Das habe ich bereits versucht - ist egal.
Ups - Stimmt nicht ganz:
error: resource xml/device_admin.xml (aka com.mycompany.kioskapp:xml/device_admin.xml) not found.
Grüße Kurt

Rollo62 11. Mär 2025 18:27

AW: Android64 manifest '@xml\device_admin.xml' is incompatible with attribute resour
 
Das kann alles mögliche sein je nachdem wie alt dein project ist.
Hast du mal ein leeres neues Projekt angelegt und damit versucht?
Wenn es damit läuft dann kannst Du die XML und anderes vergleichen.

kmj 11. Mär 2025 18:48

AW: Android64 manifest '@xml\device_admin.xml' is incompatible with attribute resour
 
Hallo Dank Dir für die Hilfe!
zu Deiner Frage: Nein habe ich noch nicht. Eigenlich habe ich mich auf eine paclient-Fehler fixiert - Scheuklappenblick.

Wenn ich besagte Zeilen
Code:
...
<meta-data
         android:name="android.app.device_admin"
         android:resource="@xml\device_admin.xml"/>
durch

Code:
....
<meta-data
         android:name="android.app.device_admin"
         android:value="" />    <-----------------
ersetze, dann komme ich fehlerfrei (leider auch sinnbefreit) durch und die App wird auf dem Tablet zumindest gestartet.
Daher meine Frage nach manuellem Erstellen des APK.

Allerdings ist es vielleicht einen Test wert eine Dummy-App mit zusätzlichem Inhalt im Ordner XMl zu fertigen - ich werde es versuchen.


Grüße
Kurt

Rollo62 12. Mär 2025 09:42

AW: Android64 manifest '@xml\device_admin.xml' is incompatible with attribute resour
 
Das hier hilft vielleicht auch
https://blogs.embarcadero.com/develo...11-alexandria/

"Revert System Files to Default" macht Sinn bei älteren Projekten.
Aber Vorsicht, wenn Du eigene jar's da benutzt, setzt es die glaube ich auch zurück ( entfernt die aus dem Libraries Zweig ).
Eine Sicherheitskopie sollte man haben. :-D

kmj 12. Mär 2025 14:37

AW: Android64 manifest '@xml\device_admin.xml' is incompatible with attribute resour
 
Hi, danke für die Info!
Die JARs sind zurückgesetzt.
Ich werde mir den Stoff von Jim McKeeth anschauen. Schließlich hat er an der Demoapp auch schon mal gearbeitet.
Derzeit habe ich mir eine Kotlin-App genommen um zum Ziel zu kommen. Das ist zwar nicht meine Welt, aber irgendwie kommt man hier vorwärts.
Grüße
Kurt


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz