![](/img/trans.png)
[英]Why can't I call a public method of a java class using an instance of the class?
[英]Why can't I call a Java method of an imported android platform api class in cordova cusotm plugin
我正在使用 Ionic 創建一個應用程序,為了加載與 Play Asset Delivery 一起使用的資產,我需要通過創建一個cordova插件來訪問android本機代碼。 我需要添加這三行代碼。 為了實現這一點,我導入了包含這些方法和類的 Android 平台 API。
插件 Java 文件:
package cordova.plugin.hello;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CallbackContext;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
//My Imports
import android.content.res.AssetManager;
import android.content.Context;
import java.io.InputStream;
public class hello extends CordovaPlugin {
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
Context context = createPackageContext("io.ionic.starter", 0);
AssetManager assetManager = context.getAssets();
InputStream is = assetManager.open("pack1");
}
}
構建應用程序時,我收到此錯誤:
> Task :app:compileDebugJavaWithJavac FAILED
C:\Users\LUM\appAsset\platforms\android\app\src\main\java\cordova\plugin\hello\hello\hello.java:22: error: cannot find symbol
Context context = createPackageContext("io.ionic.starter", 0);
^
symbol: method createPackageContext(String,int)
location: class hello
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 error
我對應用程序開發非常陌生,我在 Internet 上找到的所有可能的解決方案都創建了不同的錯誤,同時遠離您可以在第一篇鏈接文章中看到的三行代碼。 例如添加this.cordova.getActivity()
並調用createPackageContext("io.ionic.starter", 0);
在那。 這造成了更多的錯誤。 與其他修復嘗試相同。
我知道即使在修復其他人之后出現錯誤也是正常的,但是如果你能幫助我解決我在代碼上做錯的事情,它真的會幫助我。
Android SDK Tools : 26.1.1
NodeJS : v12.18.3
npm : 6.14.6
OS : Windows 10
Gradle : 6.6.1
Ionic Framework : @ionic/angular 5.3.3
Cordova Platforms : android 9.0.0
@Stultuske是對的 - createPackageContext()
是android.content.Context
類上的一個實例方法,因此您需要在現有類實例上調用它。 您可以使用應用程序上下文實例; 嘗試這個:
Context context = this.cordova
.getActivity()
.getApplicationContext()
.createPackageContext("io.ionic.starter", 0);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.