原因:
java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'boolean java.io.File.isDirectory()'
LocalOfficeManager officeManager = LocalOfficeManager.install();
try {
// Start an office process and connect to the started instance (on port 2002).
officeManager.start();
File inputFile = new File("storage/emulated/0/COVID-19/111.pdf");
wordtext = String.valueOf(JodConverter.convert(inputFile));
} catch (OfficeException e) {
e.printStackTrace();
} finally {
// Stop the office process
OfficeUtils.stopQuietly(officeManager);
}
E / AndroidRuntime:致命例外:主进程:handbook_multi_maker.TJ,PID:17976 java.lang.RuntimeException:无法启动活动ComponentInfo {handbook_multi_maker.TJ/TJ.SecondActivity}:java.lang.NullPointerException:尝试调用虚拟在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3107)在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3250)上的NULL.Object对象上的方法'boolean java.io.File.isDirectory()' .app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)位于android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)位于android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)位于android.os.Looper.loop(Looper.java:214)处的android.os.Handler.dispatchMessage(Handler.java:106)处的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1947) .ActivityThread.main(ActivityThread.java:7032)在Java。 com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:493)上的lang.reflect.Method.invoke(本地方法)com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964) )由以下原因引起:java.lang.NullPointerException:尝试在org.jodconverter.local.office.LocalOfficeUtils.validateOfficeHome(LocalOfficeUtils.java:339上的空对象引用上调用虚拟方法'boolean java.io.File.isDirectory()' )位于org.jodconverter.local.office.LocalOfficeManager.install(LocalOfficeManager.java:78)位于org.jodconverter.local.office.LocalOfficeManager $ Builder.build(LocalOfficeManager.java:169)在TJ.SecondActivity.initWebView(SecondActivity。于TJ.SecondActivity.onCreate(SecondActivity.java:104)处的android.app.Activity.performCreate(Activity.java:7327)处的android.app.Activity.performCreate(Activity.java:7318)处的Java:132)。 app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3087)位于ndroid.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3250)位于android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)位于android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) .app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1947)在android.os.Handler.dispatchMessage(Handler.java:106)。 os.Looper.loop(Looper.java:214)在android.app.ActivityThread.main(ActivityThread.java:7032)在com.android.internal.os的java.lang.reflect.Method.invoke(Native Method)。 RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:493)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:964)
因此,如果您的Office安装位于自定义目录中,则可以使用officeHome属性。
这是您的更新代码:
OfficeManager officeManager =
LocalOfficeManager.builder()
.officeHome("Path to your office home")
.install()
.build();
try {
// Start an office process and connect to the started instance (on port 2002).
officeManager.start();
File inputFile = new File("storage/emulated/0/COVID-19/111.pdf");
wordtext = String.valueOf(JodConverter.convert(inputFile));
} catch (OfficeException e) {
e.printStackTrace();
} finally {
// Stop the office process
OfficeUtils.stopQuietly(officeManager);
}