我在用gluon-mobile写一些例子,使用awt的图片代码,安装apk后,运行报错。
我想把pdf文件的每一页都转换成Android上的图片,执行命令mvn -Pandroid client:build和mvn -Pandroid client:package并且mvn -Pandroid client:install成功,但是mvn -Pandroid client:run报错:
[INFO] Scanning for projects...
[INFO]
[INFO] -----< com.gluonapplication:gluonmobile-multiviewprojectwithfxml >------
[INFO] Building >GluonMobile-MultiViewProjectwithFXML 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- client-maven-plugin:0.1.41:run (default-cli) @ gluonmobile-multiviewprojectwithfxml ---
[Fri Jun 04 14:39:55 CST 2021][INFO] ==================== RUN TASK ====================
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] --------- beginning of main
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] --------- beginning of system
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] V/GraalActivity(10188): onCreate start, using Android Logging v1
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] V/GraalActivity(10188): onCreate done
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] V/GraalActivity(10188): onStart
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] V/GraalActivity(10188): onStart done
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] V/GraalActivity(10188): onResume
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] V/GraalActivity(10188): onResume done
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] V/GraalActivity(10188): surfaceCreated for com.gluonhq.helloandroid.MainActivity@c041bbc
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] V/GraalActivity(10188): loading substrate library
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] --------- beginning of crash
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): FATAL EXCEPTION: main
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): Process: com.gluonapplication.gluonmobilemultiviewprojectwithfxml, PID: 10188
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "JNI_OnLoad_awt" referenced by "/data/app/com.gluonapplication.gluonmobilemultiviewprojectwithfxml-_0a-A9Uy6soKaDMg1FxUiA==/lib/arm64/libsubstrate.so"...
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at java.lang.Runtime.loadLibrary0(Runtime.java:1071)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at java.lang.Runtime.loadLibrary0(Runtime.java:1007)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at java.lang.System.loadLibrary(System.java:1667)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at com.gluonhq.helloandroid.MainActivity.surfaceCreated(MainActivity.java:104)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at android.view.SurfaceView.updateSurface(SurfaceView.java:828)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at android.view.SurfaceView$2.onPreDraw(SurfaceView.java:172)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:1088)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:3077)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1991)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:8210)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1094)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at android.view.Choreographer.doCallbacks(Choreographer.java:917)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at android.view.Choreographer.doFrame(Choreographer.java:844)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1079)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at android.os.Handler.handleCallback(Handler.java:883)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at android.os.Handler.dispatchMessage(Handler.java:100)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at android.os.Looper.loop(Looper.java:238)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at android.app.ActivityThread.main(ActivityThread.java:7818)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at java.lang.reflect.Method.invoke(Native Method)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] E/AndroidRuntime(10188): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:995)
[Fri Jun 04 14:39:57 CST 2021][INFO] [SUB] W/ActivityManager( 1697): setHasOverlayUi called on unknown pid: 10188
这是代码。
PDDocument document = null;
PDFRenderer pdfRenderer = null;
String path = Thread.currentThread().getContextClassLoader().getResource("").getPath();
try {
File file = new File(path + "/pdf/daofa-5.pdf");
document = PDDocument.load(file);
System.out.println("totale pages----->" + document.getNumberOfPages());
pdfRenderer = new PDFRenderer(document);
BufferedImage bufferedImage = pdfRenderer.renderImage(1);
int width = bufferedImage.getWidth();
int height = bufferedImage.getHeight();
System.out.println("width---->" + width);
System.out.println("height---->" + height);
}catch (Exception e){
e.printStackTrace();
}finally {
if(document !=null){
try {
document.close();
pdfRenderer = null;
} catch (IOException e) {
e.printStackTrace();
}
}
}
这是 pom.xml 文件。
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.gluonapplication</groupId>
<artifactId>gluonmobile-multiviewprojectwithfxml</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>>GluonMobile-MultiViewProjectwithFXML</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.release>11</maven.compiler.release>
<javafx.version>15.0.1</javafx.version>
<attach.version>4.0.11</attach.version>
<client.plugin.version>0.1.41</client.plugin.version>
<javafx.plugin.version>0.0.5</javafx.plugin.version>
<pdfbox.version>2.0.21</pdfbox.version>
<mainClassName>com.gluonapplication.GluonApplication</mainClassName>
</properties>
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>${javafx.version}</version>
</dependency>
<dependency>
<groupId>com.gluonhq</groupId>
<artifactId>charm-glisten</artifactId>
<version>6.0.6</version>
</dependency>
<dependency>
<groupId>com.gluonhq.attach</groupId>
<artifactId>display</artifactId>
<version>${attach.version}</version>
</dependency>
<dependency>
<groupId>com.gluonhq.attach</groupId>
<artifactId>lifecycle</artifactId>
<version>${attach.version}</version>
</dependency>
<dependency>
<groupId>com.gluonhq.attach</groupId>
<artifactId>statusbar</artifactId>
<version>${attach.version}</version>
</dependency>
<dependency>
<groupId>com.gluonhq.attach</groupId>
<artifactId>storage</artifactId>
<version>${attach.version}</version>
</dependency>
<dependency>
<groupId>com.gluonhq.attach</groupId>
<artifactId>util</artifactId>
<version>${attach.version}</version>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId>
<version>${pdfbox.version}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>fontbox</artifactId>
<version>${pdfbox.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk15on</artifactId>
<version>1.49</version>
</dependency>
</dependencies>
<repositories>
<repository>
<id>Gluon</id>
<url>https://nexus.gluonhq.com/nexus/content/repositories/releases</url>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
</plugin>
<plugin>
<groupId>org.openjfx</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>${javafx.plugin.version}</version>
<configuration>
<mainClass>${mainClassName}</mainClass>
</configuration>
</plugin>
<plugin>
<groupId>com.gluonhq</groupId>
<artifactId>client-maven-plugin</artifactId>
<version>${client.plugin.version}</version>
<configuration>
<target>${client.target}</target>
<attachList>
<list>display</list>
<list>lifecycle</list>
<list>statusbar</list>
<list>storage</list>
</attachList>
<bundlesList>
<list>com.gluonapplication.views.primary</list>
<list>com.gluonapplication.views.secondary</list>
</bundlesList>
<reflectionList>
<list>com.gluonapplication.views.PrimaryPresenter</list>
<list>com.gluonapplication.views.SecondaryPresenter</list>
</reflectionList>
<mainClass>${mainClassName}</mainClass>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>desktop</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<client.target>host</client.target>
</properties>
<dependencies>
<dependency>
<groupId>com.gluonhq.attach</groupId>
<artifactId>display</artifactId>
<version>${attach.version}</version>
<classifier>desktop</classifier>
</dependency>
<dependency>
<groupId>com.gluonhq.attach</groupId>
<artifactId>lifecycle</artifactId>
<version>${attach.version}</version>
<classifier>desktop</classifier>
</dependency>
<dependency>
<groupId>com.gluonhq.attach</groupId>
<artifactId>storage</artifactId>
<version>${attach.version}</version>
<classifier>desktop</classifier>
</dependency>
</dependencies>
</profile>
<profile>
<id>ios</id>
<properties>
<client.target>ios</client.target>
</properties>
</profile>
<profile>
<id>android</id>
<properties>
<client.target>android</client.target>
</properties>
</profile>
</profiles>
</project>