没有 MainActivity,我不能使用 getAssets 方法
I can't use getAssets method without MainActivity
当我在 Android Studio 中编写代码时,没有 MainActivity 就无法使用 getAssets。
这是 MainActivity.
package com.example.maguro.mnist_bg2;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.TextView;
import android.util.Log;
import android.content.res.AssetManager;
import org.tensorflow.contrib.android.TensorFlowInferenceInterface;
public class MainActivity extends AppCompatActivity {
CanvasView canvasview; //already exist CanvasView class
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
canvasview = new CanvasView(this);
setContentView(canvasview);
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()) {
case R.id.item1:
canvasview.onReset();
break;
case R.id.item2:
canvasview.onDetect();
break;
case R.id.item3:
finish();
break;
}
return true;
}
}
这是另一个例子class。
package com.example.maguro.mnist_bg2;
import android.content.Context;
import android.content.res.AssetManager;
import org.tensorflow.contrib.android.TensorFlowInferenceInterface;
public class DigitDetector {
static{
System.loadLibrary("tensorflow_inference");
}
protected void onDetect(byte[] bytes){
TensorFlowInferenceInterface inference = new TensorFlowInferenceInterface(getAssets(), "beginner-graph.pb");
}
}
错误点几乎是最后一行TensorFlowInferenceInterface inference = new TensorFlowInferenceInterface(getAssets(), "beginner-graph.pb");
虽然Android工作室说
Cannot resolve method 'getAssets()
Android Studio 没有在 MainActivity
中指出该错误
即使我将另一个 class 模块等同于 MainActivity
,Android Studio 也说了同样的错误。
为什么会出错?
请把你的手借给我
在您的 class 中创建构造函数。
例如:-
Context context;
DigitDetector(Context ctx){
context = ctx;
}
并将其用作。
context.getAssets()....
import android.content.Context;
import android.content.res.AssetManager;
import org.tensorflow.contrib.android.TensorFlowInferenceInterface;
public class DigitDetector {
Context context;
public DigitDetector(Context context) {
this.context =context;
}
static{
System.loadLibrary("tensorflow_inference");
}
protected void onDetect(byte[] bytes){
TensorFlowInferenceInterface inference = new TensorFlowInferenceInterface(context.getAssets(), "beginner-graph.pb");
}
}
尝试创建构造函数并在其上传递 activity 上下文。并将其用于
'getAssets()' 方法。
当我在 Android Studio 中编写代码时,没有 MainActivity 就无法使用 getAssets。
这是 MainActivity.
package com.example.maguro.mnist_bg2;
import android.os.Environment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;
import android.widget.TextView;
import android.util.Log;
import android.content.res.AssetManager;
import org.tensorflow.contrib.android.TensorFlowInferenceInterface;
public class MainActivity extends AppCompatActivity {
CanvasView canvasview; //already exist CanvasView class
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
canvasview = new CanvasView(this);
setContentView(canvasview);
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item){
switch(item.getItemId()) {
case R.id.item1:
canvasview.onReset();
break;
case R.id.item2:
canvasview.onDetect();
break;
case R.id.item3:
finish();
break;
}
return true;
}
}
这是另一个例子class。
package com.example.maguro.mnist_bg2;
import android.content.Context;
import android.content.res.AssetManager;
import org.tensorflow.contrib.android.TensorFlowInferenceInterface;
public class DigitDetector {
static{
System.loadLibrary("tensorflow_inference");
}
protected void onDetect(byte[] bytes){
TensorFlowInferenceInterface inference = new TensorFlowInferenceInterface(getAssets(), "beginner-graph.pb");
}
}
错误点几乎是最后一行TensorFlowInferenceInterface inference = new TensorFlowInferenceInterface(getAssets(), "beginner-graph.pb");
虽然Android工作室说
Cannot resolve method 'getAssets()
Android Studio 没有在 MainActivity
即使我将另一个 class 模块等同于 MainActivity
,Android Studio 也说了同样的错误。
为什么会出错?
请把你的手借给我
在您的 class 中创建构造函数。 例如:-
Context context;
DigitDetector(Context ctx){
context = ctx;
}
并将其用作。
context.getAssets()....
import android.content.Context;
import android.content.res.AssetManager;
import org.tensorflow.contrib.android.TensorFlowInferenceInterface;
public class DigitDetector {
Context context;
public DigitDetector(Context context) {
this.context =context;
}
static{
System.loadLibrary("tensorflow_inference");
}
protected void onDetect(byte[] bytes){
TensorFlowInferenceInterface inference = new TensorFlowInferenceInterface(context.getAssets(), "beginner-graph.pb");
}
}
尝试创建构造函数并在其上传递 activity 上下文。并将其用于 'getAssets()' 方法。